我刚开始学习Java,我正在尝试完成这项练习。
我已经了解了如何使用扫描仪从txt文件中提取信息(我认为)(我们只应该更改方法体)。但是,我不确定将信息传输到数组的正确语法。
我意识到它必须非常简单,但我似乎无法弄明白。有人可以指出我在语法和所需元素方面的正确方向吗?提前谢谢!
import java.util.Scanner;
import java.io.FileReader;
import java.io.IOException;
public class Lab02Task2 {
/**
* Loads the game records from a text file.
* A GameRecord array is constructed to store all the game records.
* The size of the GameRecord array should be the same as the number of non-empty records in the text file.
* The GameRecord array contains no null/empty entries.
*
* @param reader The java.io.Reader object that points to the text file to be read.
* @return A GameRecord array containing all the game records read from the text file.
*/
public GameRecord[] loadGameRecord(java.io.Reader reader) {
// write your code after this line
Scanner input = new Scanner(reader);
for (int i=0; input.hasNextLine(); i++) {
String inputRecord = input.nextLine();
input = new Scanner(inputRecord);
// array?
}
return null; // this line should be modified/removed after finishing the implementation of this method.
}
}
答案 0 :(得分:1)
如果您已有String
个文件内容,可以说:
String[] words = content.split("\\s");
答案 1 :(得分:0)
您可以像这样解析字符串:
private ArrayList<String> parse(BufferedReader input) throws CsvException {
ArrayList<String> data = new ArrayList<>();
final String recordDelimiter = "\\r?\\n|\\r";
final String fieldDelimiter = "\\t";
Scanner scanner = new Scanner(input);
scanner.useDelimiter(recordDelimiter);
while( scanner.hasNext() ) {
String line = scanner.next();
data.add(line);
}
return data;
}
将逐行扫描输入文本。
答案 2 :(得分:0)
您可以使用ArrayList<String>
,如下所示:
Scanner s = new Scanner(new File(//Here the path of your file));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext())
{
list.add(s.nextLine());
}
如果你想获得ArrayList
的某个项目的值,你只需要使用get函数进行引用,如下所示:
list.get(//Here the position of the value in the ArrayList);
所以,如果你想获得ArrayList
的所有值,你可以使用循环来完成它:
for (int i = 0; i < list.size(); i++)
{
System.out.println(list.get(i));
}
最后关闭Scanner
:
s.close();
我希望它会对你有所帮助!
答案 3 :(得分:0)
假设你的文件中的一行只包含一个游戏
for (int i=0; input.hasNextLine(); i++) {
String inputRecord = input.nextLine();
input = new Scanner(inputRecord);
String line=input.nextLine();
arr[i]=line;
}
return arr;