黑马程序员技术交流社区

标题: 为什么这里面的append方法一直错 [打印本页]

作者: 杨朔    时间: 2012-6-7 18:22
标题: 为什么这里面的append方法一直错
/*
这里面的append方法应该只是StringBuilder的方法,在毕老师的视频里看到的,就是提示有错
*/
import java.io.*;
class LineNumber1{
private Reader r;
private int lineNumber;
LineNumber1(Reader r){
  this.r=r;
}
public String myReadLine(){
  
  lineNumber++;
  StringBuilder sb=new StringBuilder();
  int ch=0;
  while((ch=r.read())!=-1){
   if(ch=='\r')
    continue;
   if(ch=='\n')
    return sb.toString();
   else
    return sb.append((char)ch);
  }
  if(sb.length()!=0)
   return sb.toString();
  return null;
}
public void setLineNumber(int lineNumber){
  this.lineNumber=lineNumber;
}
public int getLineNumber(int lineNumber){
  return lineNumber;
}
public void myClose() throws IOException{
  r.close();
}
}
public class LineNumber {



public static void main(String[] args) throws IOException {
  
  FileReader fr=new FileReader("E:\\工作区\\eclipse\\JavaByHand\\src\\LineNumber.java");
  LineNumber1 ln=new LineNumber1(fr);
  String line=null;
  while((line=ln.myReadLine())!=null){
   System.out.println(line);
  }
   
  ln.myClose();
}
}


作者: 梁小波    时间: 2012-6-7 18:50
你的append()没有问题。关键是return sb.append();你的函数返回类型貌似是String类型的;append()返回不是String类型
而且你的目的是加字符,也不是返回吧!应该去掉return吧?
作者: 黑马张扬    时间: 2012-6-7 18:54
  1. return sb.append((char)ch).toString();
复制代码
你的这个返回类型不对  你要的返回的是String类型  你不加toString() 他返回的是StringBuilder类型的
加上就可以了




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