Java - 解析带有整数和字符串的文本文件

标签 java

我有一个包含以下内容的文本文件(分隔符是一个空格):

1231 2134 143 wqfdfv -89 rwq f 8 qer q2
sl;akfj salfj 3 sl 123

我的目标是分别读取整数和字符串。一旦我知道如何解析它们,我将创建另一个输出文件来保存它们(但我的问题只是知道如何解析这个文本文件)。

我尝试使用扫描仪,但无法超越第一个 inetger:

Scanner s = new Scanner (new File ("a.txt")).useDelimiter("");
while (s.hasNext()){
System.out.print(s.nextInt());}

输出是

1231

如何从这两行中获取其他整数?

我想要的结果是:

1231 
2134 
143
-89
8
3 
123

最佳答案

分隔符应该是其他东西,例如至少一个或多个空格

Scanner s = new Scanner (new File ("a.txt")).useDelimiter("\\s+");
while (s.hasNext()) {
    if (s.hasNextInt()) { // check if next token is an int
        System.out.print(s.nextInt()); // display the found integer
    } else {
        s.next(); // else read the next token
    }
}

我必须承认,在这个简单的情况下,gotuskar 的解决方案是更好的解决方案。

关于Java - 解析带有整数和字符串的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11730663/

相关文章:

java - 重新保存对象而不是在列表中创建新对象

java - 排序 List<Object> 以日期为字符串类型的日期为准

java - 小程序。 java.lang.reflect.InvocationTargetException异常

java - Guava循环是如何实现的

java - Hibernate Criteria 返回重复条目(无连接)

java - 使用 indexOf() 两次未能检测到第二个字符的出现

java - 如何正确使用Scanner类?

Java:创建对象时,为什么界面不在右侧?

java - Eclipse 甚至不会在被告知时尝试编译/运行

Java 并发文件写入 - 应该会失败