日期:2014-05-20  浏览次数:20843 次

为什么这个程序不返回值?
import   java.io.FileNotFoundException;
import   java.io.IOException;
import   java.io.BufferedReader;
import   java.io.FileReader;
import   java.io.Writer;
import   java.util.regex.Matcher;
import   java.util.regex.Pattern;
public   class   GetPageCount   {
public   int   getPageCount()   throws   IOException{
BufferedReader       reader=new       BufferedReader(new   FileReader( "E:\\jsp\\test.txt "));      
                String       line=reader.readLine();  
                int   i   =   0;
                while(line!=null){      
                        line       =       reader.readLine();      
                        String     r1= "(.*共   <span   class=\ "text_orange\ "> )(.*)( </span>   页.*) ";
Pattern   s1=Pattern.compile(r1);
Matcher   m1=s1.matcher(line);
boolean   T1=m1.matches();
if(T1)
{
i=Integer.parseInt(m1.group(2))   ;
System.out.println( "--------总页数-------: "+i);//这儿输出I有值
}
     
                }      
      return   i;
}

}

为什么不返回值呢?我测试的时候好像根本就没有执行return   i

------解决方案--------------------
是不是有异常了,就不走return i了。
你把异常捕获一下,不要抛出异常。
------解决方案--------------------
E:\\jsp\\test.txt这个文件的第一行你跳过去了,没处理第一行;

------解决方案--------------------
while(line!=null){
line = reader.readLine();

这里的
line = reader.readLine(); 应该放到while循环的最后面,否则你文件的第一行被跳过了。