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
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
解决方案 »
- java String.split(^}$)为什么不能用,超简单?!
- 加密用户名和密码
- 征集人民币大小写转换思路(要求在万亿级别)
- 想问问在java语言中申明的类变量、实例变量、局部变量在内存中的分配问题?
- 关于JAVA正则表达式的一个疑惑:怎样匹配乘号*?
- 一直不明白的一个问题!多继承和接口
- 下拉列表怎么实现(下拉列表的选项,是我要从数据库中查出来的某省的所有城市名称)
- 什么是ICU?
- 如何升级win2000自带的java包?(高手请进)
- 哪里有thinking in java中的流程下载?
- 谁用过 ofbiz 做过 checkbox的例子,会的请进
- 使用httpclient后,return不返回值,请大家帮忙看一下
你把异常捕获一下,不要抛出异常。
line = reader.readLine(); 这里的
line = reader.readLine(); 应该放到while循环的最后面,否则你文件的第一行被跳过了。
============================
好像,你怎么知道没走,去主调函数中接一下,看看有没有值,或者在return i 前面加上System.out.println("xxxxxxxxxxx");看看走没走这一步,有可能像一楼说的,抛了异常
====================================
除了io异常,这一句也可能抛异常
line = reader.readLine();这儿先改成
while(line = reader.readLine() != null){然后设置断点,单步执行程序调试一下,看看在输出i的值到返回之前,哪一步出现了问题。
问题解决.是因为
while(line!=null){
line = reader.readLine();正因为大家所说..这句造成第一句没有读到,也是这句报的异常..谢谢
小弟在这儿受教了!!!
我也想那样啊,可是我要的数据很多,我是用的http读完的再存txt里面,再读出来,你说的方法如果我可以实现那我就可以走很多弯路了,可是我不会呀,大哥
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()){
//在这处理所有匹配到的数据
}