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

解决方案 »

  1.   

    是不是有异常了,就不走return i了。
    你把异常捕获一下,不要抛出异常。
      

  2.   

    E:\\jsp\\test.txt这个文件的第一行你跳过去了,没处理第一行;
      

  3.   

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

  4.   

    好像根本就没有执行return i
    ============================
    好像,你怎么知道没走,去主调函数中接一下,看看有没有值,或者在return i 前面加上System.out.println("xxxxxxxxxxx");看看走没走这一步,有可能像一楼说的,抛了异常
      

  5.   

    i=Integer.parseInt(m1.group(2)) ;
    ====================================
    除了io异常,这一句也可能抛异常
      

  6.   

    while(line!=null){
    line = reader.readLine();这儿先改成
    while(line = reader.readLine() != null){然后设置断点,单步执行程序调试一下,看看在输出i的值到返回之前,哪一步出现了问题。
      

  7.   

    谢谢..非常感谢大家..
    问题解决.是因为
    while(line!=null){
    line = reader.readLine();正因为大家所说..这句造成第一句没有读到,也是这句报的异常..谢谢
    小弟在这儿受教了!!!
      

  8.   

    daniel_kaka(卡卡)你说读完再查找?
    我也想那样啊,可是我要的数据很多,我是用的http读完的再存txt里面,再读出来,你说的方法如果我可以实现那我就可以走很多弯路了,可是我不会呀,大哥
      

  9.   

    你可以这样:String str="";
    while((line=reader.readLine()) != null){
      str += line;
    }
    String  r1="(.*共 <span class=\"text_orange\">)(.*)(</span> 页.*)";
    Pattern s1=Pattern.compile(r1);
    Matcher m1=s1.matcher(str);
    while(m1.matches()){
      //在这处理所有匹配到的数据
    }