Java - 使用扫描程序读取同一行上的多个项目

时间:2014-08-25 15:01:01

标签: java java.util.scanner

我正在尝试加载一个格式如下的文本文件:

 int String int

 int String int

 int String int

我想要做的是阅读三个值并将它们放入构造函数

我这样解决问题的方法就是简单地做

        int t = infile.nextInt();
        String d = infile.nextLine();
        int p = infile.nextInt();


        Entry e = new Entry(t,d,p);

然而,这只有在t,d和p在不同的行上时才有效,因为nextInt()和nextLine()

我的问题是,如何从同一行读取3个值,然后转到下一行?

2 个答案:

答案 0 :(得分:3)

解析它:

int t = infile.nextInt(); //reads int
String d = infile.next(); //reads the next String before a blank space " "
int p = infile.nextInt(); //reads int
Entry e = new Entry(t,d,p); //use your data
infile.nextLine(); //read the line escape "\n" or "\r\n"

答案 1 :(得分:2)

我会将整行读取为String,在空白处对其进行标记,并将这三个值解析为适当的类型:

String line = infile.nextLine();
String [] tokens = line.split("\\s+");
int v1 = Integer.parseInt(tokens[0]);
String v2 = tokens[1];
int v3 = Integer.parseInt(tokens[2]);
Entry e = new Entry(v1, v2, v3);