【发布时间】:2012-04-10 00:59:55
【问题描述】:
public class FileParser {
private String filename = "mydata.txt";
private Pattern pattern = Pattern.compile("\\D\\D\\d+");
private Scanner reader;
public FileParser() throws FileNotFoundException{
reader = new Scanner(new File(filename));
}
public boolean hasMoreData(){
return reader.hasNext(pattern);
}
public String[] getNextData(){
return pattern.split(reader.next(pattern));
}
public void close(){
reader.close();
}
}
这是我的代码。我试图取出一个由 2 个字母和一个数字组成的模式。为什么我从 getNextData() 函数中什么都得不到/一个空数组?
【问题讨论】:
-
你能发布你的文件“mydata.txt”或片段吗?
-
mydata.txt中有什么内容?是可访问的吗?尝试用文件的绝对路径替换它,看看它是否是文件路径问题(不要忘记在 Windows 上加倍斜杠)。 -
该文件与 src 文件夹位于同一位置。这没什么大不了的吧?
-
数据模式看起来像AZ123;字符,字符,整数。
-
我应该只使用扫描仪的下一个带有分隔符的条形符号 |对吧?
标签: java regex pattern-matching