StringUtils.java 6.13 KB
package com.bjivt.util;

import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class StringUtils {
		public StringUtils(){
			
		}
	 public static boolean isEmpty(String str) {
	        return str == null ||str.equals("")|| str.trim().length() == 0;
	    }

	    /**
	     * <p>Checks if a String is not empty ("") and not null.</p>
	     *
	     * <pre>
	     * StringUtils.isNotEmpty(null)      = false
	     * StringUtils.isNotEmpty("")        = false
	     * StringUtils.isNotEmpty(" ")       = true
	     * StringUtils.isNotEmpty("bob")     = true
	     * StringUtils.isNotEmpty("  bob  ") = true
	     * </pre>
	     *
	     * @param str  the String to check, may be null
	     * @return <code>true</code> if the String is not empty and not null
	     */
	    public static boolean isNotEmpty(String str) {
	        return !StringUtils.isEmpty(str);
	    }
	    // Substring
	    //-----------------------------------------------------------------------
	    /**
	     * <p>Gets a substring from the specified String avoiding exceptions.</p>
	     *
	     * <p>A negative start position can be used to start <code>n</code>
	     * characters from the end of the String.</p>
	     *
	     * <p>A <code>null</code> String will return <code>null</code>.
	     * An empty ("") String will return "".</p>
	     *
	     * <pre>
	     * StringUtils.substring(null, *)   = null
	     * StringUtils.substring("", *)     = ""
	     * StringUtils.substring("abc", 0)  = "abc"
	     * StringUtils.substring("abc", 2)  = "c"
	     * StringUtils.substring("abc", 4)  = ""
	     * StringUtils.substring("abc", -2) = "bc"
	     * StringUtils.substring("abc", -4) = "abc"
	     * </pre>
	     *
	     * @param str  the String to get the substring from, may be null
	     * @param start  the position to start from, negative means
	     *  count back from the end of the String by this many characters
	     * @return substring from start position, <code>null</code> if null String input
	     */
	    public static String substring(String str, int start) {
	        if (str == null) {
	            return null;
	        }

	        // handle negatives, which means last n characters
	        if (start < 0) {
	            start = str.length() + start; // remember start is negative
	        }

	        if (start < 0) {
	            start = 0;
	        }
	        if (start > str.length()) {
	            return "";
	        }

	        return str.substring(start);
	    }

	    /**
	     * <p>Gets a substring from the specified String avoiding exceptions.</p>
	     *
	     * <p>A negative start position can be used to start/end <code>n</code>
	     * characters from the end of the String.</p>
	     *
	     * <p>The returned substring starts with the character in the <code>start</code>
	     * position and ends before the <code>end</code> position. All position counting is
	     * zero-based -- i.e., to start at the beginning of the string use
	     * <code>start = 0</code>. Negative start and end positions can be used to
	     * specify offsets relative to the end of the String.</p>
	     *
	     * <p>If <code>start</code> is not strictly to the left of <code>end</code>, ""
	     * is returned.</p>
	     *
	     * <pre>
	     * StringUtils.substring(null, *, *)    = null
	     * StringUtils.substring("", * ,  *)    = "";
	     * StringUtils.substring("abc", 0, 2)   = "ab"
	     * StringUtils.substring("abc", 2, 0)   = ""
	     * StringUtils.substring("abc", 2, 4)   = "c"
	     * StringUtils.substring("abc", 4, 6)   = ""
	     * StringUtils.substring("abc", 2, 2)   = ""
	     * StringUtils.substring("abc", -2, -1) = "b"
	     * StringUtils.substring("abc", -4, 2)  = "ab"
	     * </pre>
	     *
	     * @param str  the String to get the substring from, may be null
	     * @param start  the position to start from, negative means
	     *  count back from the end of the String by this many characters
	     * @param end  the position to end at (exclusive), negative means
	     *  count back from the end of the String by this many characters
	     * @return substring from start position to end positon,
	     *  <code>null</code> if null String input
	     */
	    public static String substring(String str, int start, int end) {
	        if (str == null) {
	            return null;
	        }

	        // handle negatives
	        if (end < 0) {
	            end = str.length() + end; // remember end is negative
	        }
	        if (start < 0) {
	            start = str.length() + start; // remember start is negative
	        }

	        // check length next
	        if (end > str.length()) {
	            end = str.length();
	        }

	        // if start is greater than end, return ""
	        if (start > end) {
	            return "";
	        }

	        if (start < 0) {
	            start = 0;
	        }
	        if (end < 0) {
	            end = 0;
	        }

	        return str.substring(start, end);
	    }
	 // Equals


	    public static boolean equals(String str1, String str2) {
	        return str1 == null ? str2 == null : str1.equals(str2);
	    }
	    /**
	      * 锟斤拷锟斤拷锟斤拷锟斤拷欠锟斤拷锟斤拷锟截革拷值
	      * @param str
	      * @return
	      */
	public static boolean isRepeat (String[] str) {

		ArrayList list = new ArrayList();
		for (int i = 0; i < str.length; i++) {
			if (!list.contains(str[i])) {
				list.add(str[i]);
			} else {
				return true;
			}
		}
		return false;
	}
	  /**  
	   * 鎵嬫満鍙烽獙璇� 
	   *   
	   * @param  str  
	   * @return 楠岃瘉閫氳繃杩斿洖true  
	   */  
	  public static boolean isMobile(String str) {    
	      Pattern p = null;   
	      Matcher m = null;   
	       boolean b = false;    
	       p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 楠岃瘉鎵嬫満鍙�  
	       m = p.matcher(str);   
	       b = m.matches();    
	       return b;   
	   } 
	  public static boolean isNumberOrAlpha(String str) {    
	      Pattern p = null;   
	      Matcher m = null;   
	       boolean b = false;    
	       p = Pattern.compile("^[a-zA-Z0-9]{6}$"); // 楠岃瘉鎵嬫満鍙�  
	       m = p.matcher(str);   
	       b = m.matches();    
	       return b;   
	   } 
}