java中怎么判断输入的是否不是中文? java中我不知道,不过我用过一种字符编码,转换后中文是两字节,英文是单字节,好象中都是%**格式,英文保持不便,有明显的区别,你可以从者方面考虑实现,我也不大懂,呵呵!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把 java 字串中的字串 getBytes("GBK"),然后判别两个字节的最高位是不是都为 1,如果是的话,很可能是中文。或者判别那个 char 的范围,看看是不是在中文 Unicode 编码的范围之内。 String sentence="汉字字串"; //输入byte[] temp=sentence.getBytes("ISO8859-1");//转变成Unicode编码boolean hanzi=false; //判断是否是汉字 int i,Slength=0; for(i=0;i<temp.length;i++) if(temp[i]<0) { hanzi=true; i=temp.length } if (hanzi) System.out.pringln("遇到汉字"); else System.out.println("没有汉字");请大家指点 上面的原理是利用汉字(双字节)的高字节最高比特位是1,故转变成byte后会小于0。 to dreamhorse:双字节的高字节为什么是1呢? 在源程序里面的汉字的判别,这取决于你编译的 encoding 方式。dreamhorse(江南) 的方法,在如下的编译方式时是正确的:javac -encoding ISO8859-1 YourClass.java但一般中文 JDK 环境下缺省的编译方式是 GBK,也就是如果你编译时没有加参数 encoding 的时候,上面的方法是得不到正确的结果的。此时的javac YourClass.java相当于javac -encoding GBK YourClass.java java入门求指导 字符串截取问题高手进来看一眼 我的多线程发牌程序错在哪里 Java的一个Socket实例在TCP通信中只能单工?!! 求教:关于JTable的问题 看代码,解决问题,给分 请教:有没有用JAVA写的《计算机图形学》啊? 高分!!!think in java中的一道题(第九章43题),请高手帮助作一下。 谁知道javadoc怎么用??????????? 有哪位大神帮写一个,蟹蟹 一个关于JAVA多平台的实现问题,请高手赐教! 又一JB菜鸟问题
或者判别那个 char 的范围,看看是不是在中文 Unicode 编码的范围之内。
byte[] temp=sentence.getBytes("ISO8859-1");//转变成Unicode编码
boolean hanzi=false; //判断是否是汉字
int i,Slength=0; for(i=0;i<temp.length;i++)
if(temp[i]<0)
{ hanzi=true;
i=temp.length
} if (hanzi)
System.out.pringln("遇到汉字");
else
System.out.println("没有汉字");请大家指点
javac -encoding ISO8859-1 YourClass.java但一般中文 JDK 环境下缺省的编译方式是 GBK,也就是如果你编译时没有加参数 encoding 的时候,上面的方法是得不到正确的结果的。
此时的
javac YourClass.java
相当于
javac -encoding GBK YourClass.java