获取文本文档下一行中的整数

时间:2015-06-05 20:26:15

标签: java

我在找到字符串30后尝试在下一行中获取数字all。 下一行中的数字具有以下形式空格+整数+空格

该行中没有特定的索引(下一行中的数字位置也不同),它不是基于列的。

在这种情况下,如何在下一行中获取数字30并将其存储在int变量中?

我感谢任何帮助。

简单

table 05:09 05:39 06:11 06:41 07:11 07:41 08:11 alle 17:11 17:41 18:11 18:41 19:11 19:41
spoon 05:11 05:41 06:14 06:44 07:14 30 07:44 08:14 17:14 17:44 18:14 18:44 19:14 19:44
cabel 05:13 05:43 06:17 06:47 07:17 07:47 08:17 17:17 17:47 Min 18:17 18:47 19:17 19:47
water 05:16 05:46 06:21 06:51 07:21 07:51 08:21 17:21 17:51 18:21 18:51 19:21 19:51
laptop 05:19 05:49 06:25 06:55 07:25 07:55 08:25 17:25 17:55 18:25 18:55 19:25 19:55
tree 05:20 05:50 06:26 06:56 07:26 07:56 08:26 17:26 17:56 18:26 18:56 19:26 19:56

代码:

    Scanner scannerLines = new Scanner(file)) {
    int lineNum = 0;

    while (scannerLines.hasNextLine()) {

        String line = scannerLines.nextLine();

        if (line.contains(" alle ")) {

            scannerLines.nextLine();
            Scanner scannerWords = new Scanner(line);

            while (scannerWords.hasNext()) {

                String words = scannerWords.nextLine();

            }
        } 
    }        

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式并获取包含整数的组。 最后的分组看起来像(\ s \ d \ d \ s)。

答案 1 :(得分:0)

我想你已经在包含“alle”的行后面有一行,并且它在变量String s中正确使用(或者在你想要的任何地方调用它)。

我只是执行以下操作(例如在返回值的方法中):

String ss[] = s.split(" ");
for(String x:ss) {
  if(!x.contains(':')) return Integer.valueOf(x);
}
throw new IllegalStateException("Value not found!");

未经测试,我会将错误处理留给您。