如何判断一个字符串中含有多少个汉字?

chinadrencher 2004-12-09 01:52:20
因为汉字占了两个英文子母的宽度.我要计算一个字符串在屏幕中占了多宽.


...全文
1391 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssDOn 2004-12-17
  • 打赏
  • 举报
回复
用这个,如果是String的话,
toCharArray() ,里面的汉字再用 length()就是准确的 unicode 字符数。
御南 2004-12-17
  • 打赏
  • 举报
回复
getLength不行吗?
tomuno 2004-12-17
  • 打赏
  • 举报
回复
notice
bradwoo8621 2004-12-17
  • 打赏
  • 举报
回复
要计算字符串在屏幕中的宽度对吧.

比如组件是label,
label.getFontMetrics(label.getFont()).stringWidth()
干嘛算字符数
Jock 2004-12-15
  • 打赏
  • 举报
回复
还是用一楼的方法好。
Jock 2004-12-15
  • 打赏
  • 举报
回复
to xitianjile(西天)
操作系统是英文的就转化为GBK编码,中文或类似中文的就转化为ISO8859
murphy008 2004-12-15
  • 打赏
  • 举报
回复
标准的中文字符判断是对中文的字库码进行判断的!大家去找吧~~~
Jock 2004-12-15
  • 打赏
  • 举报
回复
平台相关,看来大家都是在类中文平台下开发的,真是幸福啊。
tjl713 2004-12-15
  • 打赏
  • 举报
回复
有人知道法文的情况吗?法文有的英文带帽子,现在晕死了!
xitianjile 2004-12-14
  • 打赏
  • 举报
回复
我的想法是先判断字符串的长度。
然后在将字符串转换成iso-8859-1类型
2次的长度差就是字符串中汉字的长度。
代码用我写吗?
thomas_20 2004-12-14
  • 打赏
  • 举报
回复
String aString = "这是一个测试串,This is a test string.";
String anotherString = null;
try {
anotherString = new String(aString.getBytes("GBK"), "ISO8859_1");
}
catch (UnsupportedEncodingException ex) {
}
System.out.println(aString.length() + "," + anotherString.length());
疾风2002 2004-12-13
  • 打赏
  • 举报
回复
把String转成char[],判断每个char的数值是否小于128,小于128的为ascII字符,其它为双字节字符。
DoYouLoveMe 2004-12-13
  • 打赏
  • 举报
回复
看Windows程序设计。里面计算Truetype字体的宽度。
llQiu 2004-12-13
  • 打赏
  • 举报
回复
mq612(理想) 的方法正确,得到了输入框中字符串的长度
pchobby 2004-12-13
  • 打赏
  • 举报
回复
做个标记
vgvg 2004-12-13
  • 打赏
  • 举报
回复
str.getBytes().length-str.length();
catblue 2004-12-13
  • 打赏
  • 举报
回复
楼上你的方法算出来不行的。
cxz7531 2004-12-10
  • 打赏
  • 举报
回复
老作javascript,搞混了,用java是这个
public static int strlen(String str){
try{
return (new String(str.getBytes("gb2312"),"ISO-8859-1")).length();

}catch(Exception e){
return -1;
}
}
cxz7531 2004-12-10
  • 打赏
  • 举报
回复
转化为iso8859-1后求长度,就是真正的宽度
function strlen(str){
return (new String(str.getBytes("gb2312"),"ISO-8859-1")).length();
}
chinadrencher 2004-12-10
  • 打赏
  • 举报
回复
谢谢诸位

起始不需要知道它是否是中文.就需要它占的位置的长度.

length()不行的.因为一个汉字的length是1不是2.
加载更多回复(6)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧