黑马程序员技术交流社区

标题: length的一个问题 [打印本页]

作者: love~陌    时间: 2014-3-21 18:58
标题: length的一个问题
  1. <div class="blockcode"><blockquote>import java.io.*;
  2. public class  CharCode
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 String strChina="中国";
  7.                 for (int i=0;i<strChina.length();i++ )//这里strChina.length()为strChina的长度
  8.                 {
  9.                         System.out.println(Integer.toHexString((int)strChina.charAt(i)));
  10.                 }
  11.                 byte [] buf=strChina.getBytes("gb2312");
  12.                 for (int i=0;i<buf.length;i++ )//为什么这里是buf.length呢?
  13.                 {
  14.                         System.out.println(Integer.toHexString(buf[i]));
  15.                 }
  16.                 for (int i=0;i<buf.length;i++ )//为什么这里是buf.length呢?
  17.                 {
  18.                         System.out.write(buf[i]);
  19.                 }
  20.         }
  21. }
复制代码

问题在代码中

作者: linweiwen    时间: 2014-3-21 19:31
楼主,建议你去查一下API文档,
看一下String类的API,






String类的对象,求长度就是用 .length()方法。
程序中在用getBytes()方法,将strChina的字符串转为了byte类型的数组,
基础类型的数组,就是用 .length来求长度,具体出自哪里懒得查了,反正就是这么回事。


作者: luoanjade    时间: 2014-3-22 00:21
length()是方法,length是属性!
作者: 杯之水    时间: 2014-3-22 13:09
String strChina="中国";
String类中有length()方法获取字符串长度

byte [] buf=strChina.getBytes("gb2312");
数组buf中有属性.length属性可以获取数组长度

具体原理可以参考:
http://jarfield.iteye.com/blog/564721
作者: 李猛    时间: 2014-3-22 13:11
因为你把strChina转换成了字符数组,再者你是读的数组中的字符数据,所以当然要使用数组的长度了,字符串跟字符不一样的,根据需求来定,还有就是length是数组的属性,length()是字符串的方法,不一样的。等你学到API就不迷茫了,不用太心急的
作者: luoyilan222    时间: 2014-3-22 14:01
1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.  2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.  3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2