public static String splitString(String str, int len) { 

 return splitString(str, len, "..."); 

} 


public static String splitString(String str,int len,String elide) { 

 if (str == null) { 

 return ""; 

 } 

 byte[] strByte = str.getBytes(); 

 int strLen = strByte.length; 

 if (len >= strLen || len < 1) { 

 return str; 

 } 

 int count = 0; 

 for (int i = 0; i < len; i++) { 

 int value = (int) strByte[i]; 

 if (value < 0) { 

 count++; 

 } 

 } 

 if (count % 2 != 0) { 

 len = (len == 1) ? len + 1 : len - 1; 

 } 

 return new String(strByte, 0, len) + elide.trim(); 

}



方法一:

public static int countChineseCharacter(String originStr) { 

 int count = 0; 

 String temp = null; 

 for (int i = 0; i < originStr.length(); i++) { 

 temp = String.valueOf(originStr.charAt(i)); 

 if (temp.getBytes().length == 2) 

 count++; 

 } 

 return count; 

 }


方法二:

public static int countChinese(String originalStr){ 

 int count = 0; 

 Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]"); 

 Matcher matcher = pattern.matcher(originalStr); 

 while(matcher.find()) 

 count++; 

 return count; 

 }