java从读取文件并用正则表达式匹配,可是怎么都无法正确匹配,求大神给指点迷津

lzl__lzl 2014-11-06 01:13:14
import java.util.*;
import java.util.regex.*;
import java.io.*;

public class FilterData
{
List<String> list=new ArrayList<String>();
private static Scanner input;
private String patternString="[0-9]{4}-[0-9]{2}-[0-9]{2}";
Pattern pattern=Pattern.compile(patternString);
Matcher matcher;
String temp;

public void readData(String fileName)
{
try
{
input=new Scanner(new File(fileName));
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
try
{
while(input.hasNext())
{
temp=input.nextLine();
\\temp="2014-11-11";
matcher=pattern.matcher(temp);
System.out.println(matcher.lookingAt());
if(matcher.lookingAt())
list.add(temp);
}

}
catch(NoSuchElementException e)
{
e.printStackTrace();
}
catch(IllegalStateException e)
{
e.printStackTrace();
}
}

public void printData(String fileName)
{
try
{
FileWriter fileWriter=new FileWriter(new File(fileName));
fileWriter.write(list.toString());
fileWriter.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}

public static void main(String[] args)
{
FilterData filterData=new FilterData();
filterData.readData("text.txt");
filterData.printData("text1.txt");
System.out.println(filterData.list);
}

}
在代码标红的那部分,怎么都不对,如果把那行\\temp="2014-11-11";注释给取消,就能发现可以正确被正则表达式处理。可是直接从文件读出的数据就不能被正则表达式处理,不清楚为什么,我的代码哪里有问题,还请大神解答
...全文
508 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzl__lzl 2014-11-06
  • 打赏
  • 举报
回复
引用 3 楼 jintianhen1 的回复:
应该是file文件读取问题,吧file读取的内容打印出来看看就行了,或者debug一下
file文件读取哪里有问题?我不清楚啊!
静山晚风 2014-11-06
  • 打赏
  • 举报
回复
应该是file文件读取问题,吧file读取的内容打印出来看看就行了,或者debug一下
静山晚风 2014-11-06
  • 打赏
  • 举报
回复
应该不是正则的问题,我从控制台输入也没出错
tony4geek 2014-11-06
  • 打赏
  • 举报
回复
你这个调试看看,temp 是什么有没有空格啊。等等。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧