怎么判断一个字符串里的字符是否是汉字啊 汉字是双字节的,字节编码是大于0x80的,循环取得汉字,如果开始的第一个字节是大于0x80,第二个字节同样是大于0x80,两个字节一个汉字. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如 wind0513(风儿) 的观点。如果第1个字符是大于128(\x80),就是汉字的第1个字节,这个自己和后面紧跟的1个字节组成一个汉字; 这里有一篇 车东 的文章。很是不错。http://www.chedong.com/tech/hello_unicode.html 不同意上面的。那样的话日文,韩文,法语等等不也算中文拉。。比如:¡ ¡ ¡ Inverted exclamation ¢ ¢ ¢ Cent sign £ £ £ Pound sterling ¤ ¤ ¤ General currency sign ¥ ¥ ¥ Yen sign ¦ ¦ ¦ or &brkbar; Broken vertical bar § § § Section sign ¨ ¨ ¨ or ¨ Diæresis / Umlaut © © © Copyright ª ª ª Feminine ordinal « « « Left angle quote, guillemot left 每种编码方式有一个范围的,即char在某一个范围内是中文。不过到底多少记忆模糊,需自查之! 这话我爱听,哪位大侠写段代码我看看,看了刚才车东的那篇文章,感觉编码本身就是很复杂的事。我想实现的功能实际是:String temp = "京卫食准字第[0x123]号";然后经过重新对汉字编码,把上面这段字符串传送到IC卡中。IC卡的编码格式是汉字两个字节,其他字符按一个字节存取。 我用下面的代码: String temp = "京卫食准字第[0x123]号"; System.out.println(temp.length()); try { for (int i = 0; i < temp.length(); i++) { int ch = temp.charAt(i); System.out.println("temp[" + i + "] = " + ch); } }catch(Exception e){ e.printStackTrace(); }输出的应该是temp字符串里的每个字符的asc码吧 从windows的字符映射表查了一下unicode 范围4E00(一) 到 9FA0(龠)的都是汉字,可以把每个char拿出来看是不是落在这个范围里 /** * 判断是否包括中文字符。 */ public static boolean isIncludeChinese(String s) { for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c > 255 || c < 0) { return true; } } return false; } java 是用unicode编码的,要查一下字符集 public class ChineseFont{ public static boolean isChinese(char a) { int v=(int)a; return (v>=19968 && v<=171941); } public static void main(String[] args) { String str=new String("abc中d华112人e民**^$%*&()共)和ggafda,.国[]l;"); int cnt=0; for(int i=0;i<str.length();i++) { if(isChinese(str.charAt(i))) cnt++; } System.out.println("共有汉字:"+cnt+" 个。"); }} 关于java内存溢出!aix系统显示错误帮忙解释 求java 编写语法分析程序!!!!!!!!!!! 请问怎么读XML文件 想要获得基础经验 不知道如何下手哦 路过的大侠们帮帮忙,如何改变默认的JRE? 高手请进,给个思路就给分 为什么我做的jframe 运行时只能看到标题栏阿????? 问一下,大家学JAVA都用在什么上的,用什么做? public String和public void有什么不同? 在java中如何将一个文件复制到另外一个地方(我想文件内容一样,名字不一样)?急啊 各位,谁有ultraedit v10.20b 的系列号。谢谢 提问:
http://www.chedong.com/tech/hello_unicode.html
比如:
¡ ¡ ¡ Inverted exclamation
¢ ¢ ¢ Cent sign
£ £ £ Pound sterling
¤ ¤ ¤ General currency sign
¥ ¥ ¥ Yen sign
¦ ¦ ¦ or &brkbar; Broken vertical bar
§ § § Section sign
¨ ¨ ¨ or ¨ Diæresis / Umlaut
© © © Copyright
ª ª ª Feminine ordinal
« « « Left angle quote, guillemot left 每种编码方式有一个范围的,即char在某一个范围内是中文。不过到底多少记忆模糊,需自查之!
我想实现的功能实际是:
String temp = "京卫食准字第[0x123]号";
然后经过重新对汉字编码,把上面这段字符串传送到IC卡中。
IC卡的编码格式是汉字两个字节,其他字符按一个字节存取。
String temp = "京卫食准字第[0x123]号"; System.out.println(temp.length());
try {
for (int i = 0; i < temp.length(); i++) {
int ch = temp.charAt(i); System.out.println("temp[" + i + "] = " + ch);
}
}catch(Exception e){
e.printStackTrace();
}
输出的应该是temp字符串里的每个字符的asc码吧
unicode 范围4E00(一) 到 9FA0(龠)的都是汉字,可以把每个char拿出来看是不是
落在这个范围里
* 判断是否包括中文字符。
*/
public static boolean isIncludeChinese(String s) {
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c > 255 || c < 0) {
return true;
}
}
return false;
}
{
public static boolean isChinese(char a)
{
int v=(int)a;
return (v>=19968 && v<=171941);
} public static void main(String[] args)
{
String str=new String("abc中d华112人e民**^$%*&()共)和ggafda,.国[]l;");
int cnt=0; for(int i=0;i<str.length();i++)
{
if(isChinese(str.charAt(i)))
cnt++;
}
System.out.println("共有汉字:"+cnt+" 个。"); }
}