java - 读取包含括号的文件中的整数值

标签 java java.util.scanner

我想读取包含如下字符串的文件中的整数值:

1 (23 4 5)

这是我的 Java 代码

import java.io.File;
import java.io.FileNotFoundException;
import java.util.InputMismatchException;
import java.util.Scanner;


public class EssaiLecture {

    public static void main (String[] args){
        try {

            File file = new File("try.txt");


                Scanner sc = new Scanner(file).useDelimiter("");

           while(sc.hasNext()){

               try{

                  System.out.println(sc.nextInt());

               }
               catch (InputMismatchException in) {

                  sc.next();

               }

           }  

              sc.close();
            }
              catch (FileNotFoundException e) {
              e.printStackTrace();
            }


    }

}

输出为

1
2
3
4
5

问题是:我无法读取由 2 个(或更多)字符组成的整数值。

如何解决?

最佳答案

正如从输出中看到的,使用空的String作为分隔符会导致输入被分割成单个字符 - 您可以使用非数字模式表达式

Scanner sc = new Scanner(file).useDelimiter("\\D+");

哪里

  • \\D - 匹配非数字
  • + - 贪婪量词,匹配所有可用的非数字字符

关于java - 读取包含括号的文件中的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19427626/

相关文章:

java - Openjdk 和 Java webstart

java - 如何在scala akka中找到父 Actor

java - 为什么这个 if 语句也没有按照我想要的方式执行?

java - 使用 RestFB 的安全性如何?

java - 如何通过 java 连接到基于 Amazon Web Services 的关系数据库? SQL异常表示访问被拒绝

java - .hasNextInt 的替代方法?

java - 扫描仪仅读取第一组输入

java - 如何在 Java 中有效比较用户输入和多个输出场景

java - 如何在 url 请求中发送数组

java - 如何从单个输入扫描不确定的数字列表?