TXT文件,包含整数、字符串和项目符号列表(1.)



我有一个文本文件,它有几行像这样

7. SSWAB        38    15   -  57    

但是我不需要所有的值,只需要字符串和整数。我会用nextInt来表示整数,但是我怎么处理1呢?和- - - - - - ?

还有字符串,什么是有用的nextString?next够吗?

我已经尝试过这样做,只是使用标记,但没有任何反应

scanner.next(); //7.
String  s = (scanner.next()); //SAVES sswab
Integer n1 = scanner.nextInt(); //38
Integer n2 = scanner.nextInt(); //15
Integer n3 = scanner.nextInt(); //- is skipped, as next int is 57

您可以使用scanner.next(Pattern pattern)来匹配这些组。

试试这个正则表达式

-?d+.?(d+)?|w+

Demo
它将捕获您提到的所有组加上小数和负数。

然后你可以在扫描器

中使用这个正则表达式
String text = "7. SSWAB        38    15   -  57    ";
Scanner scanner = new Scanner(text);
while(scanner.hasNext()) {
if(scanner.hasNext("-?\d+\.?(\d+)?|\w+")) {
System.out.println(scanner.next("-?\d+\.?(\d+)?|\w+"));
} else {
scanner.next();
}
}

此代码捕获所有匹配的组并跳过其他组。

输出
7.
SSWAB
38
15
57

最新更新