程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java 斷定字符為中文實例代碼(超管用)

Java 斷定字符為中文實例代碼(超管用)

編輯:關於JAVA

Java 斷定字符為中文實例代碼(超管用)。本站提示廣大學習愛好者:(Java 斷定字符為中文實例代碼(超管用))文章只能為提供參考,不一定能成為您想要的結果。以下是Java 斷定字符為中文實例代碼(超管用)正文


在做項目中常常會碰到有項目需求是須要斷定字符為中文的一些成績,所以匯集了斷定中文字符的代碼片斷,特此分享供年夜家參考。

直接貼出代碼了,外面有具體的正文。

package com.coder4j.main;
import java.util.regex.Pattern;
/**
* Java 斷定中文字符
* 
* @author Chinaxiang
* @date 2015-08-11
*
*/
public class CheckChinese {
public static void main(String[] args) {
// 純英文
String s1 = "Hello,Tom.!@#$%^&*()_+-={}|[];':\"?";
// 純中文(不含中文標點)
String s2 = "你好中國";
// 純中文(含中文標點)
String s3 = "你好,中國。《》:“”‘';()【】!¥、";
// 韓文
String s4 = "한국어난";
// 日文
String s5 = "ぎじゅつ";
// 特別字符
String s6 = "��";
String s7 = "╃";
String s8 = "╂";
// 繁體中文
String s9 = "蒼老師";
// 1 應用字符規模斷定
System.out.println("s1能否包括中文:" + hasChineseByRange(s1));// false
System.out.println("s2能否包括中文:" + hasChineseByRange(s2));// true
System.out.println("s3能否包括中文:" + hasChineseByRange(s3));// true
System.out.println("s4能否包括中文:" + hasChineseByRange(s4));// false
System.out.println("s5能否包括中文:" + hasChineseByRange(s5));// false
System.out.println("s6能否包括中文:" + hasChineseByRange(s6));// false
System.out.println("s7能否包括中文:" + hasChineseByRange(s7));// false
System.out.println("s8能否包括中文:" + hasChineseByRange(s8));// false
System.out.println("s9能否包括中文:" + hasChineseByRange(s9));// true
System.out.println("-------朋分線-------");
System.out.println("s1能否滿是中文:" + isChineseByRange(s1));// false
System.out.println("s2能否滿是中文:" + isChineseByRange(s2));// true
System.out.println("s3能否滿是中文:" + isChineseByRange(s3));// false 中文標點不在規模內
System.out.println("s4能否滿是中文:" + isChineseByRange(s4));// false
System.out.println("s5能否滿是中文:" + isChineseByRange(s5));// false
System.out.println("s6能否滿是中文:" + isChineseByRange(s6));// false
System.out.println("s7能否滿是中文:" + isChineseByRange(s7));// false
System.out.println("s8能否滿是中文:" + isChineseByRange(s8));// false
System.out.println("s9能否滿是中文:" + isChineseByRange(s9));// true
System.out.println("-------朋分線-------");
// 2 應用字符規模正則斷定(成果同1)
System.out.println("s1能否包括中文:" + hasChineseByReg(s1));// false
System.out.println("s2能否包括中文:" + hasChineseByReg(s2));// true
System.out.println("s3能否包括中文:" + hasChineseByReg(s3));// true
System.out.println("s4能否包括中文:" + hasChineseByReg(s4));// false
System.out.println("s5能否包括中文:" + hasChineseByReg(s5));// false
System.out.println("s6能否包括中文:" + hasChineseByReg(s6));// false
System.out.println("s7能否包括中文:" + hasChineseByReg(s7));// false
System.out.println("s8能否包括中文:" + hasChineseByReg(s8));// false
System.out.println("s9能否包括中文:" + hasChineseByReg(s9));// true
System.out.println("-------朋分線-------");
System.out.println("s1能否滿是中文:" + isChineseByReg(s1));// false
System.out.println("s2能否滿是中文:" + isChineseByReg(s2));// true
System.out.println("s3能否滿是中文:" + isChineseByReg(s3));// false 中文標點不在規模內
System.out.println("s4能否滿是中文:" + isChineseByReg(s4));// false
System.out.println("s5能否滿是中文:" + isChineseByReg(s5));// false
System.out.println("s6能否滿是中文:" + isChineseByReg(s6));// false
System.out.println("s7能否滿是中文:" + isChineseByReg(s7));// false
System.out.println("s8能否滿是中文:" + isChineseByReg(s8));// false
System.out.println("s9能否滿是中文:" + isChineseByReg(s9));// true
System.out.println("-------朋分線-------");
// 3 應用CJK字符集斷定
System.out.println("s1能否包括中文:" + hasChinese(s1));// false
System.out.println("s2能否包括中文:" + hasChinese(s2));// true
System.out.println("s3能否包括中文:" + hasChinese(s3));// true
System.out.println("s4能否包括中文:" + hasChinese(s4));// false
System.out.println("s5能否包括中文:" + hasChinese(s5));// false
System.out.println("s6能否包括中文:" + hasChinese(s6));// false
System.out.println("s7能否包括中文:" + hasChinese(s7));// false
System.out.println("s8能否包括中文:" + hasChinese(s8));// false
System.out.println("s9能否包括中文:" + hasChinese(s9));// true
System.out.println("-------朋分線-------");
System.out.println("s1能否滿是中文:" + isChinese(s1));// false
System.out.println("s2能否滿是中文:" + isChinese(s2));// true
System.out.println("s3能否滿是中文:" + isChinese(s3));// true 中文標點也被包括出去
System.out.println("s4能否滿是中文:" + isChinese(s4));// false
System.out.println("s5能否滿是中文:" + isChinese(s5));// false
System.out.println("s6能否滿是中文:" + isChinese(s6));// false
System.out.println("s7能否滿是中文:" + isChinese(s7));// false
System.out.println("s8能否滿是中文:" + isChinese(s8));// false
System.out.println("s9能否滿是中文:" + isChinese(s9));// true
}
/**
* 能否包括中文字符<br>
* 包括中文標點符號<br>
* 
* @param str
* @return
*/
public static boolean hasChinese(String str) {
if (str == null) {
return false;
}
char[] ch = str.toCharArray();
for (char c : ch) {
if (isChinese(c)) {
return true;
}
}
return false;
}
/**
* 能否滿是中文字符<br>
* 包括中文標點符號<br>
* 
* @param str
* @return
*/
public static boolean isChinese(String str) {
if (str == null) {
return false;
}
char[] ch = str.toCharArray();
for (char c : ch) {
if (!isChinese(c)) {
return false;
}
}
return true;
}
/**
* 能否是中文字符<br>
* 包括中文標點符號<br>
* 
* @param c
* @return
*/
private static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) {
return true;
} else if (ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS) {
return true;
} else if (ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION) {
return true;
} else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A) {
return true;
} else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B) {
return true;
} else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C) {
return true;
} else if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D) {
return true;
} else if (ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
return true;
} else if (ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
return true;
}
return false;
}
/**
* 能否包括漢字<br>
* 依據漢字編碼規模停止斷定<br>
* CJK同一漢字(不包括中文的,。《》()“‘'”、!¥等符號)<br>
* 
* @param str
* @return
*/
public static boolean hasChineseByReg(String str) {
if (str == null) {
return false;
}
Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+");
return pattern.matcher(str).find();
}
/**
* 能否滿是漢字<br>
* 依據漢字編碼規模停止斷定<br>
* CJK同一漢字(不包括中文的,。《》()“‘'”、!¥等符號)<br>
* 
* @param str
* @return
*/
public static boolean isChineseByReg(String str) {
if (str == null) {
return false;
}
Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+");
return pattern.matcher(str).matches();
}
/**
* 能否包括漢字<br>
* 依據漢字編碼規模停止斷定<br>
* CJK同一漢字(不包括中文的,。《》()“‘'”、!¥等符號)<br>
* 
* @param str
* @return
*/
public static boolean hasChineseByRange(String str) {
if (str == null) {
return false;
}
char[] ch = str.toCharArray();
for (char c : ch) {
if (c >= 0x4E00 && c <= 0x9FBF) {
return true;
}
}
return false;
}
/**
* 能否滿是漢字<br>
* 依據漢字編碼規模停止斷定<br>
* CJK同一漢字(不包括中文的,。《》()“‘'”、!¥等符號)<br>
* 
* @param str
* @return
*/
public static boolean isChineseByRange(String str) {
if (str == null) {
return false;
}
char[] ch = str.toCharArray();
for (char c : ch) {
if (c < 0x4E00 || c > 0x9FBF) {
return false;
}
}
return true;
}
}

假如僅僅去斷定能否是中文,不需斷定中文標點的話,推舉應用正則去婚配,能夠更高效點。

以上代碼內容給年夜家引見了Java 斷定字符為中文實例代碼(超管用),願望對年夜家有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved