String.getBytes().length != String.length()
String.getBytes().length取的是字节数,因为中文是全角字符,所以每个中文的字节数都为2
String.length()取的是字符长度,按中文的个数来截取。
但是这样有bug 因为中文是全角字符没错,但是并非全角字符就全部是中文
另外的解决方法如下:
public class IsChinese{
/**
* @param args
*/
public static void main(String[] args){
// TODO Auto-generated method stub
//判断字符是否为中文
String str = "中国chinese";
for (int i = 0; i < str.length(); i++){
if (str.substring(i, i + 1).matches("[/u4e00-/u9fa5]+")){
System.out.println("""+str.substring(i, i + 1)+"""+"为汉字");
}else...{
System.out.println("""+str.substring(i, i + 1)+"""+"不为汉字");
}
}
}
}