Java 判斷字串中是否含有漢字.
java判斷是否為漢字和是否有漢字的方法
關鍵字: java 漢字 方法
Java程式碼
public boolean vd(String str){
char[] chars=str.toCharArray();
boolean isGB2312=false;
for(int i=0;i<chars.length;i++){
byte[] bytes=(""+chars[i]).getBytes();
if(bytes.length==2){
int[] ints=new int[2];
ints[0]=bytes[0]& 0xff;
ints[1]=bytes[1]& 0xff;
if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE){
isGB2312=true;
break;
}
}
}
return isGB2312;
}
public boolean vd(String str){
char[] chars=str.toCharArray();
boolean isGB2312=false;
for(int i=0;i<chars.length;i++){
byte[] bytes=(""+chars[i]).getBytes();
if(bytes.length==2){
int[] ints=new int[2];
ints[0]=bytes[0]& 0xff;
ints[1]=bytes[1]& 0xff;
if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE){
isGB2312=true;
break;
}
}
}
return isGB2312;
}
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
這兩個包,接下來是程式碼
Java程式碼
public boolean isNumeric(String str)
{
Pattern pattern = Pattern.compile(”[0-9]*”);
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ) {
return false;
}
return true;
}
java.lang.Character.isDigit(ch[0])
public boolean isNumeric(String str)
{
Pattern pattern = Pattern.compile(”[0-9]*”);
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ) {
return false;
}
return true;
}
java.lang.Character.isDigit(ch[0])
-----------------另一種-----------------
Java程式碼
public static void main(String[] args) {
int count = 0;
String regEx = "[\\u4e00-\\u9fa5]";
//System.out.println(regEx);
String str = "中文fdas ";
//System.out.println(str);
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
count = count + 1;
}
}
System.out.println("共有 " + count + "個 ");
}
public static void main(String[] args) {
int count = 0;
String regEx = "[\\u4e00-\\u9fa5]";
//System.out.println(regEx);
String str = "中文fdas ";
//System.out.println(str);
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
count = count + 1;
}
}
System.out.println("共有 " + count + "個 ");
} -------------------------------------------------------------------
判斷java String中是否有漢字的方法
java用的是Unicode 編碼char 型變數的範圍是0-65535 無符號的值,可以表示 65536個字元,基本上地球上的字元可被全部包括了,實際中,我們希望判斷一個字元是不是漢字,或者一個字串裡的字元是否有漢字來滿足業務上的需求,String類中有個這樣的方法可得到其字元長度length() ,看下面例子,
Java程式碼
String s1 = "我是中國人";
String s2 = "imchinese";
String s3 = "im中國人";
System.out.println(s1+":"+new String(s1).length());
System.out.println(s2+":"+new String(s2).length());
System.out.println(s3+":"+new String(s3).length());
String s1 = "我是中國人";
String s2 = "imchinese";
String s3 = "im中國人";
System.out.println(s1+":"+new String(s1).length());
System.out.println(s2+":"+new String(s2).length());
System.out.println(s3+":"+new String(s3).length());
OUTPUT:
我是中國人:5
imchinese:9
im中國人:5
看到了吧,字串裡如果有雙位元組的字元java就把每個字元都按雙位元組編碼,如果都是單位元組的字元就按單位元組編碼
於是按照以上的規律,結合一位QQ暱稱 ?G茶?I珠海 兄的提示由以下解決方法,就是判斷字串的長度和字元位元組的長度是否相同來判斷是否有雙位元組的字元
Java程式碼
System.out.println((s1.getBytes().length == s1.length())?"s1無漢字":"s1有漢字");
System.out.println((s2.getBytes().length == s2.length())?"s2無漢字":"s2有漢字");
System.out.println((s3.getBytes().length == s3.length())?"s3無漢字":"s3有漢字");
System.out.println((s1.getBytes().length == s1.length())?"s1無漢字":"s1有漢字");
System.out.println((s2.getBytes().length == s2.length())?"s2無漢字":"s2有漢字");
System.out.println((s3.getBytes().length == s3.length())?"s3無漢字":"s3有漢字");
OUTPUT:
s1有漢字
s2無漢字
s3有漢字 //
且慢,這樣誠然可以判斷出來一個串中是否有雙位元組編碼的字元,但是要精確判斷是否有漢字就有些麻煩了,我們知道還有許多其他國家的字元在Unicode中是雙位元組的.
於是,需要進一步確定漢字的編碼範圍怎麼確定呢,我用了一個本辦法那就是現在記事本輸出0-65535之間的字元,通過觀察發現第一個漢字是'一'最後一個是'??'(現在我也不認識);這下好了判斷漢字就容易多了比如我們可以通過比較字元的編碼範圍,最後給大家一些我試驗的結果漢字基本集中在[19968,40869]之間,共有20901個漢字(是不是少了點,算算你能認識多少)
轉載:
相關文章
- Oracle中如何判斷一個字串是否含有漢字(中文)Oracle字串
- js判斷字串中是否含有指定字元JS字串字元
- php判斷字串A是否含有字串BPHP字串
- js判斷字串中是否含有指定的子字串JS字串
- js如何判斷字串中是否含有指定字元JS字串字元
- 寫一函式,準確地判斷欄位是否含有漢字或者提取漢字等函式
- 關於字串的一些常用判斷 是否全部為數字 是否包含有數字 是否包含有英文字串
- 演算法問題——判斷陣列中是否含有某一字串演算法陣列字串
- C#判斷一個字串是否是數字或者含有某個數字C#字串
- js判斷字串是否含有特殊字元和emoji表情JS字串字元
- java判斷輸入的字串是否為數字Java字串
- 【轉】Java中判斷字串是否為數字的五種方法Java字串
- java判斷字串是否為空Java字串
- 在Oracle中,如何判斷一個字串是否為數字?Oracle字串
- js如何判斷陣列中是否含有某個元素JS陣列
- 判斷DOM元素是否含有子節點
- nginx判斷路徑是否含有某個引數做判斷Nginx
- Java使用正規表示式判斷字串中是否包含某子字串Java字串
- javascript如何判斷物件直接量中是否含有指定屬性JavaScript物件
- 判斷字串是否為空字串
- 判斷URL字串是否合法字串
- 判斷字串是否唯一字串
- Java 判斷JSONObject是否包含含有某個屬性值(key)JavaJSONObject
- js如何判斷字串中是否包含指定的子字串JS字串
- PHP 判斷一個字元是否在字串中PHP字元字串
- 判斷字串中是否包含Emoji表情程式碼字串
- js判斷陣列中是否含有指定元素程式碼例項JS陣列
- js判斷字串是否為空JS字串
- JavaScript判斷字串是否為空JavaScript字串
- C 判斷字串是否是子集字串
- C#判斷字串是否合法C#字串
- PHP 判斷是否包含某字串PHP字串
- js如何判斷陣列是否含有指定的元素JS陣列
- 判斷某一個字串是否存在另一個字串中字串
- js判斷option項中是否含有具有給定value值的項JS
- 如何在js中判斷是否包含某個字串JS字串
- 如何判斷一個字串是否為純數字的問題,當然也可以判斷一個字串是否為純字母字串
- 如何在Java中判斷是否為空Java