A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 佛山java爱好者 中级黑马   /  2014-7-18 16:08  /  2151 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 佛山java爱好者 于 2014-7-18 19:08 编辑

char[] buf=new char[10];
in len=isr.read(buf);
String str=new String(buf,0,len);

求解答,这三行代码的作用是什么啊,特别不懂String(buf,0,len)

15 个回复

倒序浏览
new String(buf,0,len)是String类的一个构造方法,用buf字符数组中从下标0开始算起的len个元素初始化一个字符串对象。其他两行的作用要看你完整的程序想做什么
回复 使用道具 举报

  1. char[] buf=new char[10];   //创建了一个长度为10的数组,它指向buf
复制代码

回复 使用道具 举报

我擦,写半天就剩下这么一句话鸟,还得重来……
回复 使用道具 举报
我咋看着代码是错误的,in不能声明变量吧
回复 使用道具 举报
  1. <blockquote>char[] buf=new char[10];  //创建了一个长度为10的数组
复制代码


回复 使用道具 举报
wisely 中级黑马 2014-7-18 17:46:59
7#
char[] buf=new char[10];  //创建了一个长度为10的数组

in len=isr.read(buf);  //调用read方法,将字符读入数组buf中,并返回读入数组的字符个数
                                  //这里要注意一下,虽然数组长度为10,但有可能只读入了3或7个字符,它的返回值就是3或7

String str=new String(buf,0,len);  //创建一个字符串,可参考String类的构造方法。
                                                       // 需要解释一下这里为何不用new String(buf)。就像上一句代码所说,read方法读入的字符可能不是10,比如读入了7个字符,如果用new String(buf),那么前面7个是读到的字符,而后面3个则会用null补上,而后面的3个null显然不是我们想要的数据,所以可用new String(buf,0,len)来创建对象。如果len是10,那么new String(buf)与new String(buf,0,len)的结果是一样的,如果len不是10,那就尴尬了,所以说,new String(buf,0,len)绝对是好构造方法,放心大胆地用吧、
                                                       //最后说一句,new出来的String对象指向了类类型变量str
回复 使用道具 举报
wisely 中级黑马 2014-7-18 17:48:16
8#
wisely 发表于 2014-7-18 17:46
char[] buf=new char[10];  //创建了一个长度为10的数组

in len=isr.read(buf);  //调用read方法,将字符 ...

老天爷啊,总算发出来鸟,回个帖咋这么难泥?
回复 使用道具 举报
路过~~~~~~~~~~~
回复 使用道具 举报
lz确定不是int len?少个t吧。
就是设置一个10字节的缓冲,读取源,然后转成字符串。
回复 使用道具 举报
哎,多看看java基础视频。20天左右的有很多这样的,String str=new String(buf,0,len)中 0到len是指角标取值从0开始到len长度终止
回复 使用道具 举报
点个赞哈
回复 使用道具 举报
创建了一个数组长度为10的char类型数组,然后调用isr对象的read方法并把数组对象buf传递过去并赋值给Internet类型的len变量;最后截取字符数组buf从0开始到len结束的字符作为一个字符串常量对象赋给字符串变量str
回复 使用道具 举报
你的代码不是很全面,第一行是创建一个字符数组用来临时存储字符数据,第二行是从输入流中读取buf个字符。第三行好像是创建一个String类型的对象把它打印输出出来,你没有写完,所以不好解读。
回复 使用道具 举报
点赞党~~
回复 使用道具 举报
学习来了            
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马