JAVA 字符处理

/** 
   * 分割字符串 
   * 
   * @param str String 原始字符串 
   * @param splitsign String 分隔符 
   * @return String[] 分割后的字符串数组 
   */  
@SuppressWarnings("unchecked")  
public static String[] split(String str, String splitsign) {  
    int index;  
    if (str == null || splitsign == null)  
      return null;  
    ArrayList al = new ArrayList();  
    while ((index = str.indexOf(splitsign)) != -1) {  
      al.add(str.substring(0, index));  
      str = str.substring(index + splitsign.length());  
    }  
    al.add(str);  
    return (String[]) al.toArray(new String[0]);  
}  
  
/** 
   * 替换字符串 
   * 
   * @param from String 原始字符串 
   * @param to String 目标字符串 
   * @param source String 母字符串 
   * @return String 替换后的字符串 
   */  
public static String replace(String from, String to, String source) {  
    if (source == null || from == null || to == null)  
      return null;  
    StringBuffer bf = new StringBuffer("");  
    int index = -1;  
    while ((index = source.indexOf(from)) != -1) {  
      bf.append(source.substring(0, index) + to);  
      source = source.substring(index + from.length());  
      index = source.indexOf(from);  
    }  
    bf.append(source);  
    return bf.toString();  
}  
  
/** 
   * 替换字符串,能能够在HTML页面上直接显示(替换双引号和小于号) 
   * 
   * @param str String 原始字符串 
   * @return String 替换后的字符串 
   */  
public static String htmlencode(String str) {  
    if (str == null) {  
      return null;  
    }  
  
    return replace("\"", """, replace("<", "<", str));  
}  
  
/** 
   * 替换字符串,将被编码的转换成原始码(替换成双引号和小于号) 
   * 
   * @param str String 
   * @return String 
   */  
public static String htmldecode(String str) {  
    if (str == null) {  
      return null;  
    }  
  
    return replace(""", "\"", replace("<", "<", str));  
}  
  
private static final String _BR = "<br/>";  
  
/** 
   * 在页面上直接显示文本内容,替换小于号,空格,回车,TAB 
   * 
   * @param str String 原始字符串 
   * @return String 替换后的字符串 
   */  
public static String htmlshow(String str) {  
    if (str == null) {  
      return null;  
    }  
  
    str = replace("<", "<", str);  
    str = replace(" ", " ", str);  
    str = replace("\r\n", _BR, str);  
    str = replace("\n", _BR, str);  
    str = replace("\t", "    ", str);  
    return str;  
}  
  
/** 
   * 返回指定字节长度的字符串 
   * 
   * @param str String 字符串 
   * @param length int 指定长度 
   * @return String 返回的字符串 
   */  
public static String toLength(String str, int length) {  
    if (str == null) {  
      return null;  
    }  
    if (length <= 0) {  
      return "";  
    }  
    try {  
      if (str.getBytes("GBK").length <= length) {  
        return str;  
      }  
    } catch (Exception ex) {  
    }  
    StringBuffer buff = new StringBuffer();  
  
    int index = 0;  
    char c;  
    length -= 3;  
    while (length > 0) {  
      c = str.charAt(index);  
      if (c < 128) {  
        length--;  
      } else {  
        length--;  
        length--;  
      }  
      buff.append(c);  
      index++;  
    }  
    buff.append("...");  
    return buff.toString();  
}  
  
/** 
   * 判断是否为整数 
   * 
   * @param str 传入的字符串 
   * @return 是整数返回true,否则返回false 
   */  
public static boolean isInteger(String str) {  
    Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");  
    return pattern.matcher(str).matches();  
}  
  
/** 
   * 判断是否为浮点数,包括double和float 
   * 
   * @param str 传入的字符串 
   * @return 是浮点数返回true,否则返回false 
   */  
public static boolean isDouble(String str) {  
    Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$");  
    return pattern.matcher(str).matches();  
}  
  
/** 
   * 判断输入的字符串是否符合Email样式. 
   * 
   * @param str 传入的字符串 
   * @return 是Email样式返回true,否则返回false 
   */  
public static boolean isEmail(String str) {  
    Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");  
    return pattern.matcher(str).matches();  
}  
  
/** 
   * 判断输入的字符串是否为纯汉字 
   * 
   * @param str 传入的字符窜 
   * @return 如果是纯汉字返回true,否则返回false 
   */  
public static boolean isChinese(String str) {  
    Pattern pattern = Pattern.compile("[\u0391-\uFFE5]+$");  
    return pattern.matcher(str).matches();  
}  
  
/** 
   * 是否为空白,包括null和"" 
   * 
   * @param str 
   * @return 
   */  
public static boolean isBlank(String str) {  
    return str == null || str.trim().length() == 0;  
}  
  
/** 
* 判断是不是合法手机 
* handset 手机号码 
*/  
public static boolean isHandset(String handset) {  
try {  
   if(!handset.substring(0,1).equals("1")) {  
    return false;  
   }  
   if (handset==null || handset.length()!=11) {  
    return false;  
   }  
   String check = "^[0123456789]+$";  
   Pattern regex = Pattern.compile(check);  
   Matcher matcher = regex.matcher(handset);  
   boolean isMatched = matcher.matches();  
   if(isMatched) {  
    return true;  
   } else {  
    return false;  
   }  
} catch (RuntimeException e) {  
   return false;  
}  
}  
}  

  

posted @ 2015-02-02 15:37  清风吹云  阅读(212)  评论(0编辑  收藏  举报