Java对中文处理
1.判斷字符串是否全為漢字
String str1 = "java判斷是否為漢字"String str2 = "全為漢字"String reg = "[\\u4e00-\\u9fa5]+"boolean result1 = str1.matches(reg)//falseboolean result2 = str2.matches(reg)//true2.提取字符串中的漢字
String str = "java怎么把a(bǔ)sdasd字符串中的asdasd的漢字取出來";String reg = "[^\u4e00-\u9fa5]";str = str.replaceAll(reg, " ");System.out.println(str);3.判斷字符串中是否含有漢字
boolean result = (str.length() == str.getBytes().length)//true:無漢字 false:有漢 字4.獲取字符串中漢字的個數(shù)
int count = 0;String reg = "[\\u4e00-\\u9fa5]";String str = "java獲取漢字Chinese的個數(shù)";Pattern p = Pattern.compile(reg);Matcher m = p.matcher(str);while (m.find()) {for (int i = 0; i <= m.groupCount(); i++) {count = count + 1;}}System.out.println("共有漢字 " + count + "個 ");java一般的中文判斷都是利用正則表達(dá)式
(1)Pattern pattern = Pattern.compile("[\u4e00-\u9fcc]+");
(2)System.out.println(pattern.matcher(str).find());
或者
System.out.println(str.matches("[\u4e00-\u9fcc]+"));
5、 在Java中,主要使用 Character類處理字符有關(guān)功能,這里使用它提供的內(nèi)部類來判斷中文
(1).Character.UnicodeBlock
判斷漢字:
判斷中文符號:
private static boolean isChinesePuctuation(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.GENERAL_PUNCTUATION || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_FORMS || ub == Character.UnicodeBlock.VERTICAL_FORMS) {//jdk1.7 return true; } return false; }(2).Character.UnicodeScript(jdk1.7才提供)
Character.UnicodeScript提供了更為簡潔的判斷漢字的方式:
示例:編寫一個截取字符串的方法, 輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)數(shù)截
取的字符串。 但是要保證漢字不被截半個,如"我ABC"4,應(yīng)該截為"我AB",輸入"我
ABC漢DEF"6, 應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個"。
總結(jié)
- 上一篇: java 汉字乱码_【转】Java中文乱
- 下一篇: java美元兑换,(Java实现) 美元