java 判断是否中文字符

时间:2022-03-27 07:48:47
[java] view plaincopy
  1. package test;  
  2.   
  3.   
  4.   
  5. import java.util.Random;  
  6.   
  7.   
  8.   
  9. public class IsChineseOrEnglish {  
  10.   
  11.     //  GENERAL_PUNCTUATION 判断中文的“号  
  12.   
  13.     //  CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号  
  14.   
  15.     //  HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号  
  16.   
  17.     public static boolean isChinese(char c) {  
  18.   
  19.         Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);  
  20.   
  21.         if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS  
  22.   
  23.                 || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS  
  24.   
  25.                 || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A  
  26.   
  27.                 || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION  
  28.   
  29.                 || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION  
  30.   
  31.                 || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {  
  32.   
  33.             return true;  
  34.   
  35.         }  
  36.   
  37.         return false;  
  38.   
  39.     }  
  40.   
  41.   
  42.   
  43.     public static void isChinese(String strName) {  
  44.   
  45.         char[] ch = strName.toCharArray();  
  46.   
  47.         for (int i = 0; i < ch.length; i++) {  
  48.   
  49.             char c = ch[i];  
  50.   
  51.             if (isChinese(c) == true) {  
  52.   
  53.                 System.out.println(isChinese(c));  
  54.   
  55.                 return;  
  56.   
  57.             } else {  
  58.   
  59.                 System.out.println(isChinese(c));  
  60.   
  61.                 return;  
  62.   
  63.             }  
  64.   
  65.         }  
  66.   
  67.     }  
  68.   
  69.     public static void main(String[] args) {  
  70.   
  71.         Random r = new Random();  
  72.   
  73.         for(int i=0;i<20;i++)  
  74.   
  75.         System.out.println(r.nextInt(10)+1);  
  76.   
  77.         isChinese("き");  
  78.   
  79.         isChinese("中国");  
  80.   
  81.     }  
  82.   
  83.   
  84.   
  85. }