有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有整数、字符串和项目符号列表的java txt文件(1.)

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

7. SSWAB        38    15   -  57    

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

还有字符串,什么是有用的nextString?{}够了吗

我尝试过类似的方法,只是使用代币,但什么也没发生

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

共 (1) 个答案

  1. # 1 楼答案

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

    试试这个正则表达式

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

    Demo
    它会捕捉到你提到的所有组加上分数和负数

    然后你可以在scanner中使用这个正则表达式

    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