我现在要得到下面字符串的字节数
String str = "你好abcds";
str.length();得到的长度为7
但是汉字在unicode中占用两个字节,因此我想得到字符串str占用的字节数,
但是现在不知道怎样判断一个字符是否为汉字,请高手帮帮忙
String str = "你好abcds";
str.length();得到的长度为7
但是汉字在unicode中占用两个字节,因此我想得到字符串str占用的字节数,
但是现在不知道怎样判断一个字符是否为汉字,请高手帮帮忙
解决方案 »
- 递归,迭代,什么都行,帮忙实现下这个方法
- 使用java excel AIP 往 excel中写数据 如何确定 cell 中小位数的长度?
- 我的程序如何获得我将要启动的进程是否已经启动了呢?
- 怎样暂时停止一个thread,然后我给一个命令thread继续
- 如何使用JCreator呢?
- 如果有100个程序员,那么其中有多少人用vc,有多少人用java?
- 请问有哪位大侠用过jxl.jar这个包,假如一个cell是多行多列的怎么设置?
- 大家看看这是什么毛病?????????????????
- 请问高手:初学java,用什么项目上手练习最好呢?
- 一个小小小小小小问题
- javamail的收邮件得不到正文的问题!请帮忙啊。
- 谁有Applet的字符串输入方法?
if(str.indexof("你好")!=-1)
{
..........
}
http://topic.csdn.net/t/20060322/19/4632828.html
如果只是要判断字节数System.out.println("我们abc".getBytes().length);
不同平台的结果可能不同 如Unix就需要指定charset
GBK编码的范围是:高字节从0x81到0xFE,低字节从0x40到0xFE,同时不包括0x7F.for (char c : "你好abcds".toCharArray() )
{
if ( c > 0x80)
{
System.out.println(c + " this is a character");//是一个汉字.
}
}
package zhao;public class TestClass{
public static void main(String[] args) {
String s = "我是woshi";
char[] c = s.toCharArray();
int length = 0;//占的字节数!
System.out.println(c.length);
for(int i=0;i<c.length;i++) {
if(c[i]>128) length++; //假如为是汉字,就+1
length++;//都+1
}
System.out.println(length);
}}
所以长度乘二就是占的字节数了。
若:String str = "你好abcds";
str.length();得到的长度为7 ==》你怎么就能这么肯定它一定是7个字节?我的意思是说:你得先问一下,在哪个Charset下,你要求出它的字节数。谁说,一个汉字就一定是两个字节?
楼主啊,给我们一点启示吧,你要的是哪个字符集下的长度啊?
不过我还是想提供另外一种方法,
是我以前用过的一种方法:String str = "你好abcds";
for (int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if (Character.isLetter(c)){ //中文
//自己的处理代码
}
}