如果我在Java中使用Scanner
,我如何计算该行上的元素,以便我知道如果它没有所需的元素或继续下一行,则不处理输入?都是整数。这不是作业。
示例输入:
1 <-- ignore
1 2 3 <-- use this
1 2 <-- ignore
答案 0 :(得分:2)
一次读一行,然后自己将其拆分为元素。
while(scanner.hasNextLine())
String line = scanner.nextLine();
String[] elements = line.split(" ");
if(elements.length ==3) {
process(elements);
} else {
// deal with it somehow
}
}
...或者逻辑略有不同(因为它在完成时返回null),你可以使用BufferedReader.readLine()
答案 1 :(得分:1)
有点晚了但是,或者,您也可以使用Scanner#findInLine
来实现所需的行为,这是我为测试您的输入而编写的示例
Scanner s = new Scanner(new File("text"));
Pattern p = Pattern.compile("^(\\d+) (\\d+) (\\d+)$", Pattern.MULTILINE);
while(s.hasNextLine()){
if(s.findInLine(p)!=null){
//just printing the result. you can do needful here.
MatchResult result = s.match();
System.out.println("full line:" + result.group(0));
System.out.println("individuals");
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
}
s.nextLine();
}
希望这有助于某人:)