怎么判断String中的字符是中文还是英文 怎么判断String中的字符是中文还是英文 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考http://topic.csdn.net/t/20020627/13/833916.html 简单的一点的方法比较str的长度即str.length()和将之转成二进制数组的长度即str.getBytes().length的大小是否相等,因为1个中文在字符串里面长度算1,转换成二进制就占两个字节,所以长度会变大他们之间的差就是中文字符的个数 可以获得字符串的字符集 然后判断该字符集是不是CJK String str1 = "eeeee"; String str2 = "斯蒂芬记的"; System.out.println(str1.getBytes().length); System.out.println(str2.getBytes().length); 方法1:用正则判断[a-zA-Z0-9]就是英文,其余的都算中文方法2:用字符集判断// iso8859-1编码器CharToByteISO8859_1 converterISO = new CharToByteISO8859_1();// gbk编码器CharToByteGBK converterGBK = new CharToByteGBK();// 字符数组char[] charList = msg.toCharArray();// 每个字符占用的字节数byte[] charSize = new byte[charList.length];// 计算每个字符占用的字节数for (int i = 0; i < charList.length; i++){ if (converterISO.canConvert(charList[i])) charSize[i] = 1; // 如果iso8859-1能解析,则占1个字节 else if (converterGBK.canConvert(charList[i])) charSize[i] = 2; // 如果gbk能解析,则占2个字节 else charSize[i] = 4; // 否则当作4字节的GB18030字符} to :NCro(NCro) 方法1:用正则判断应该是[\u4e00-\u9fa5],不能把日文和韩语那些加进去吧 JTable addrow使用问题 java中//!注释怎么理解 时间存取问题 一个很郁闷的Java问题,高手帮帮我!!!! 关于deprecation,简单 swing的问题 为什么网页中不能加载java applet? 请帮忙诊断这段程序 学JB6时遇上了怪问题,我的例子有import com.borland.dbswing.*;但是我的JB6找不到这个类啊 Help Java Programer! 高手求救怎么读取邮件内容 反射+jdom+xml例子,经过一番折腾,总算知道反射是啥意思了,真的很感谢帮助我的人,不知道说啥好了,就是感动,我把我做的东西和大家分
比较str的长度即str.length()和将之转成二进制数组的长度即str.getBytes().length的大小是否相等,因为1个中文在字符串里面长度算1,转换成二进制就占两个字节,所以长度会变大他们之间的差就是中文字符的个数
String str2 = "斯蒂芬记的";
System.out.println(str1.getBytes().length);
System.out.println(str2.getBytes().length);
[a-zA-Z0-9]就是英文,其余的都算中文方法2:用字符集判断
// iso8859-1编码器
CharToByteISO8859_1 converterISO = new CharToByteISO8859_1();
// gbk编码器
CharToByteGBK converterGBK = new CharToByteGBK();
// 字符数组
char[] charList = msg.toCharArray();
// 每个字符占用的字节数
byte[] charSize = new byte[charList.length];
// 计算每个字符占用的字节数
for (int i = 0; i < charList.length; i++)
{
if (converterISO.canConvert(charList[i]))
charSize[i] = 1; // 如果iso8859-1能解析,则占1个字节
else if (converterGBK.canConvert(charList[i]))
charSize[i] = 2; // 如果gbk能解析,则占2个字节
else
charSize[i] = 4; // 否则当作4字节的GB18030字符
}
应该是[\u4e00-\u9fa5],不能把日文和韩语那些加进去吧