我有一个包含内容的文件
v1 0 2 v2 0 3 v3 1 2 v4 1 2 v5 1 3
我需要能够获取信息并将其存储在三个不同的变量中(String和2 int)。我无法理解我将使用useDelimiter
函数的模式。
还有一种方法,我不必先将它拆分成单独的字符串,然后从该字符串parseInt
?所以我有一个名为Task
的课程,其中有一个String
和两个Int
。我需要能够浏览文件并创建多个任务,例如Task(v1,0,2)
,Task(v2,0,3)
。
感谢。
答案 0 :(得分:2)
我认为你过度思考问题 - 你不需要使用useDelimiter
,因为Java的Scanner对象会自动通过空格分割。
Scanner scan = new Scanner(new File("myFile"));
ArrayList<Task> output = new ArrayList<Task>();
while (scan.hasNext()) {
String s = scan.next();
int num1 = scan.nextInt();
int num2 = scan.nextInt();
output.add(new Task(s, num1, num2));
}
请注意,如果输入与string-int-int的模式不完全匹配,则上述代码将失败 - 如果下一个标记不能解释为int,则扫描程序中的nextInt
方法将失败,如果输入中的标记数不是三的倍数,则代码将抛出异常。
答案 1 :(得分:1)
默认分隔符正常
while(sc.hasNext()) {
String s = sc.next();
int i1 = sc.nextInt();
int i2 = sc.nextInt();
...
}