【发布时间】:2014-03-20 02:56:36
【问题描述】:
我有一个文本语料库,我必须对其进行阅读、拆分、排序和执行其他操作。 一开始,当我拆分它时,我看到 Scanner 只读取一行。这是代码:
public class CorpusTest {
public static void processCorpus(Scanner scanner) throws IOException{
String line="0";
while (scanner.hasNextLine()) {
line = scanner.nextLine();
}
String[] w = line.replaceAll("[^a-zA-Z\\s]","").toLowerCase().split(" ");
for (int i = 0; i < w.length; i++) {
w[i].trim();
}
System.out.println("Word" + "\t" + "Frequency");
System.out.println(Arrays.toString(w));
}
public static void main(String [] args) throws IOException{
File temp = new File("input.txt");
Scanner scanner = new Scanner(temp);
CorpusTest.processCorpus(scanner);
}
}
我尝试添加:
String text = new Scanner( new File("input.txt") ).useDelimiter("\\A").next();
但我得到了错误,因为在上面的方法中我正在使用一个数组。
while循环只读取最后一行,不好。
【问题讨论】:
-
您的代码太碎片化,无法理解您的真正问题是什么。除了建议您“使用调试器”之外,我们无话可说。
-
@StephenC 我更新了我的问题以澄清问题。
-
@user2864740 谢谢,这绝对是相关的,它对我有用。