if(s1.getBytes().length==s1.length()) 这个判断方法是欠妥的,不单单只有汉字是说字节的,日文也是 如果String s = "アプリケーション" 的话,一样会执行if里的语句 所以个人认为,没有什么很好的方法判断String类型里是否有汉字
Java里面的char是采用unicode编码方式,每个char占两个字节,不管是简单的字符(如a)还是汉字,都是两个字节。而 public int length() Returns the length of this string. The length is equal to the number of 16-bit Unicode characters in the stringlength()返回的是字符串中16位unicode字符的个数,所以你得出来的答案就是这个原因了。至于如何判断汉字,除了kiss0931(年终奖金250块--好数目)的方法,我不会别的
判断String里是否包括有中文字符可以用这个方法
...
if(s1.getBytes().length==s1.length())
{
//如果两个长度相等,说明s1里无汉字
}else{
//如果两个长度不相等,就说明s1里面有汉字
}
...
所以输出的长度是2、4、6
这是char和byte之间的区别
这个判断方法是欠妥的,不单单只有汉字是说字节的,日文也是
如果String s = "アプリケーション" 的话,一样会执行if里的语句
所以个人认为,没有什么很好的方法判断String类型里是否有汉字
public int length()
Returns the length of this string. The length is equal to the number of 16-bit Unicode characters in the stringlength()返回的是字符串中16位unicode字符的个数,所以你得出来的答案就是这个原因了。至于如何判断汉字,除了kiss0931(年终奖金250块--好数目)的方法,我不会别的