一个String类型的变量,当它是中文时,调用length()怎么得到的长度是实际长度的一半呢?因为一个中文字符占两个字节啊? length返回的是字数,不是字节数。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java中是用UNICODE来表示的,也就是说,一个字母和一个汉字是一样的长度。 我想,java使用的是Unicode编码,每个编码的长度都是统一的都是16bit即就是两个字节所以返回的应该是5个而不是10个。 length返回的是字数,所以String str="abcde";int len=str.length();返回的肯定也是5。 那我通过网络发送时,要指定发送长度,可是如果有中文的话,发送的长度就会不对?String str = "我的字符串";int len = str.length();我用length来指定发送长度的话,就只能发一半数据过去。我怎么样才能解决这个问题? 要发送的话,你就把length乘以2,java中英文也有两个字节 str.getBytes().length因为java内部采用unicode 我通过网络发送时,要指定发送长度,可是如果有中文的话,发送的长度就会不对如果接收方也是java就int len = str.length();指定好了因为都采用一样的编码方式unicode,是不会有问题的了否则的话,需要你自己判断,str里面是否有中文,就需要判断他的unicode,然后自己改变发送的长度 Java采用Unicode码。所以一个字母和一个汉字是一样的长度。 用getBytes方法获取字符串的字节数组,然后取数组的长度 amjn(神雕过儿) 不是说了吗?str.getBytes().length String str = "我的字符串";int lenB = str.getBytes().length(); 这个问题还没有结帖吧,我来凑个热闹,刚看到的问题。比如说有下面这么一个数组。int[] arrayOfInts = { 32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127 };范例代码里用到了arrayOfInts.length的方法,对于我以前的理解,这个length该是长度吧,我写了这句代码 int sum=arrayOfInts.length; System.out.println("sum的值是"+ sum +"\n");已经知道sum值是 10。这里看来应该是表示数组成员的个数了。按照楼上几位的说法, 好像不大对吧,我觉得可能JAVA比较聪明,会按间隔符号判断。要么就是arrayofInt的作用吧?我不知道到哪里去找有关arrayofInt等的方法,我现在用的是最低的版本jdk1.1.只会用javac、java等命令,不知道哪里有帮助?可能要下载一下最新版本就好了吧,sun官方网站奇慢,可能是我自己的网络有问题。 呵呵,书后面有答案了,上面说“arrayofInt.length”函数用来取得数组中的元素数目。 质数问题 为什么是Graphics画图只画出最后的结果 而画不出循环时的结果 文件写保护的问题 新手问题3 用正则表达式如何提取绝对路径下的文件名? Struts 的web.xml配置问题 200元RMB 求JAVA国际化 编码问题 UTF-8 在线等。。急死了求求大哥大姐帮帮我吧 中秋散分 一个线程如果调了sleep,不就处于阻塞态了?那他的对象锁也应释放才是,我迷惑. 初学者关于java的图像显示的问题 简单图案编程,给分,给分!!! 请问如何对TextArea中的文本做自动换行的操作?
int len = str.length();我用length来指定发送长度的话,就只能发一半数据过去。
我怎么样才能解决这个问题?
因为都采用一样的编码方式unicode,是不会有问题的了
否则的话,需要你自己判断,str里面是否有中文,就需要判断他的unicode,然后自己改变发送的长度
用getBytes方法获取字符串的字节数组,然后取数组的长度
int lenB = str.getBytes().length();
2000, 8, 622, 127 };范例代码里用到了arrayOfInts.length的方法,对于我以前的理解,这个length该是长度吧,
我写了这句代码 int sum=arrayOfInts.length; System.out.println("sum的值是"+ sum +"\n");
已经知道sum值是 10。这里看来应该是表示数组成员的个数了。按照楼上几位的说法, 好像不大对吧,我觉得可能JAVA比较聪明,会按间隔符号判断。要么就是arrayofInt的作用吧?我不知道到哪里去找有关arrayofInt等的方法,我现在用的是最低的版本jdk1.1.只会用javac、java等命令,不知道哪里有帮助?可能要下载一下最新版本就好了吧,sun官方网站奇慢,可能是我自己的网络有问题。