Javaä¸å¤æå符串çç¼ç æ两ç§æè·¯ï¼
ä¸ç§æ¯æ ¹æ®byteçé¿åº¦å¤æï¼è±æçåæ¯æ°å好æ ç¹ç¬¦å·é½æ¯ä¸ä¸ªbyteï¼ä¸å¼å¨0-255ä¹é´
å¦ä¸ç§æ¯æ ¹æ®ä¸æçUnicodeåå¼èå´å¤æï¼è¿ä¸ªå°±æ¯ææ以çèå´é½å
å«ï¼æè½å¤ææ£ç¡®ï¼åèunicodeä¸æèå´ï¼
示ä¾ä»£ç ï¼
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringTest {
//è±æå 1byteï¼éè±æï¼å¯è®¤ä¸ºæ¯ä¸æï¼å 2byteï¼æ ¹æ®è¿ä¸ªç¹æ§æ¥å¤æå符
public static boolean checkChar(char ch) {
if ((ch + "").getBytes().length == 1) {
return true;//è±æ
} else {
return false;//ä¸æ
}
}
public static String checkString(String str) {
String res = "";
if (str != null) {
for (int i = 0; i < str.length(); i++) {
//åªè¦å符串ä¸æä¸æå为ä¸æ
if (!checkChar(str.charAt(i))) {
res = "ä¸æ";
break;
} else {
res = "è±æ";
}
}
}
return res;
}
//å¤ææ¯ä¸æ¯ä¸æ
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
return true;
}
return false;
}
//å¤ææ¯ä¸æ¯è±æåæ¯
public static boolean isEnglish(String charaString) {
return charaString.matches("^[a-zA-Z]*");
}
//æ ¹æ®ä¸æunicodeèå´å¤æu4e00 ~ u9fa5ä¸å
¨
public static String isChinese(String str) {
String regEx1 = "[\\u4e00-\\u9fa5]+";
String regEx2 = "[\\uFF00-\\uFFEF]+";
String regEx3 = "[\\u2E80-\\u2EFF]+";
String regEx4 = "[\\u3000-\\u303F]+";
String regEx5 = "[\\u31C0-\\u31EF]+";
Pattern p1 = Pattern.compile(regEx1);
Pattern p2 = Pattern.compile(regEx2);
Pattern p3 = Pattern.compile(regEx3);
Pattern p4 = Pattern.compile(regEx4);
Pattern p5 = Pattern.compile(regEx5);
Matcher m1 = p1.matcher(str);
Matcher m2 = p2.matcher(str);
Matcher m3 = p3.matcher(str);
Matcher m4 = p4.matcher(str);
Matcher m5 = p5.matcher(str);
if (m1.find() || m2.find() || m3.find() || m4.find() || m5.find())
return "ä¸æ";
else
return "è±æ";
}
public static void main(String[] args) {
System.out.println("使ç¨é¿åº¦å¤æ:");
System.out.println(checkString("Hello++"));
System.out.println(checkString("Hello++ããï¼ï¼"));
System.out.println(checkString("Hello++ç¼ç¨"));
System.out.println(checkString("ç¼ç¨"));
System.out.println("\r\n使ç¨æ£å表达å¼å¤æ:");
System.out.println(isChinese("Hello++"));
System.out.println(isChinese("Hello++ããï¼ï¼"));
System.out.println(isChinese("Hello++ç¼ç¨"));
System.out.println(isChinese("ç¼ç¨"));
System.out.println("\r\n使ç¨Character.UnicodeBlock");
System.out.println(isChinese('h')?"ä¸æ":"è±æ");
System.out.println(isChinese(',')?"ä¸æ":"è±æ");
System.out.println(isChinese('ã')?"ä¸æ":"è±æ");
System.out.println(isChinese('ç¼')?"ä¸æ":"è±æ");
}
}
温馨提示:答案为网友推荐,仅供参考