黑马程序员技术交流社区
标题:
包装类问题
[打印本页]
作者:
邝雄伟
时间:
2013-2-1 16:39
标题:
包装类问题
import java.io.*;
class MyReaderLine
{
private FileReader fr;
MyLineNumber(FileReader fr)
{
this.fr=fr;
}
public String ReadLine()throws IOException
{
StringBuilder sb = new StringBuilder();
int ch = 0;
while ((ch=fr.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.length()!=0) //为什么此处要用容器的长度方法呢? 不能这样判断? if(sb.toString()!=null) 为什么不能这样呢?
return sb.toString();
return null;
}
public void close()throws IOException
{
fr.close();
}
作者:
胡发友
时间:
2013-2-1 16:44
1.sb.length()方法是判断容器内是否添加进了数据;
2、sb.toString()方法是将容器里的数据变成自字符串输出;
两个功能是不同的
作者:
杨杨
时间:
2013-2-1 17:03
public void MyLineNumber(FileReader fr)
{
this.fr=fr;
}
发现你一个语法错误
if(sb.toString()!=null)
只要新建一个对象 new StringBuilder();
他的对象.toString 就不为null
StringBuilder重新object对象方法
public synchronized String toString() {
return new String(value, 0, count);
}
也就是没有字符串的是市 空 "" 而不是null
如果其他对象没有重新 就是类名加哈希表码
所以不能那样写 那就成了死循环了
作者:
钱志新
时间:
2013-2-1 17:26
length()是判断你的容器里面的sb对应数据的长度,String类型的长度为0就表示没有字符串;toString()方法返回此序列中数据的字符串表示形式,分配一个新的 String 对象,并将它初始化,以包含当前由此对象表示的字符串序列,然后返回此 String,也就是即使当返回的String没有内容时,即String为空,注意,它已经返回了,所以不能用null。
作者:
折纸时代
时间:
2013-2-1 18:09
只要是你new出来的对象都不可能是null的...
如果是对象引用,在没有赋予对象时,其值是null.
如果length() 的值是0,说明StringBuilder对象中是空的. 没有元素值.
如果你拿这个对象和null比较,就是拿一个存在的对象和null比较,永远都是false..
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2