我正在尝试创建一个程序来读取文本文件,然后输出有关文本文件的统计信息。我一开始就陷入困境。在这个任务中,我们被告知我们只需要在一个类中使用扫描器读取并创建“令牌”以便在其他类中进行计算。我不完全确定如何做到这一点。到目前为止,这是我在一个类中读取文件的代码:
private String s;
public void analyzeBookText(Scanner input) {
while(input.hasNext()) {
input.useDelimiter(".|!|?");
s = input.next();
if(input.next().equals("$$$END$$$")) {
break;
}
}
}
public String getS() {
return s;
}
所以我的字符串只是一个句子。然后我试图通过创建一个String实例变量和这个构造函数来访问不同类中的s:
public SentenceTally() {
BookMain sentence = new BookMain();
s = sentence.getS();
}
但是,当我尝试在其他方法中使用s时,我收到stackoverflow错误。如何在另一个类的方法中正确使用扫描仪中的数据?谢谢!
答案 0 :(得分:0)
你到了一半。接下来,您需要的是读取文本文件并将其存储到数组中。由于你的学校提到了令牌,你可以从文本文件中逐行阅读,然后将每行(如果你的数据文件只有一行,然后只是将这一行数据标记)分成标记(表示为数组):
String[] tokens = line.split(delimiter);
您可能需要先将标记转换为int数组或双数组,然后再将其用于计算。
将令牌数组作为参数传递给您的其他计算方法:
public void calculate(int[] tokens){
//your calculations in Java
}
将数据传递给其他类:
BookMain book = new BookMain();
book.analyzeFile(yourScanner);
SomeClass c = new SomeClass();
c.calculate(book.getTokens()); //create a getter for tokens in BookMain first