java - 从 System.In 读取没有换行符的行

标签 java java-io

我正在从 System.in 读取内容,并且正在使用 Scanner 类。我的问题是当我使用重定向时,文件中的最后一行未被读取。我阅读了 Scanner.readLine 的文档,我猜这是因为它没有“行尾”字符。知道我可以用什么来代替得到最后一行吗?

在我的代码中输入是“”。

        Scanner scanner = new Scanner(System.in);
        int sizeOfList = scanner.nextInt();
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        String input = scanner.nextLine();
        System.out.println(input);
        String[] splitInput = input.split(" |\\n");
        for(int i = 0; i < splitInput.length; i++)
        {
            System.out.println(splitInput[i]);
            arrayList.add(new Integer(Integer.parseInt(splitInput[i])));
        }

最佳答案

您可以使用scanner.next()代替scanner.nextLine()...。当它没有行结束符时,这将从扫描仪中获取一个字符串。

您还可以调用scanner.hasNextLine()来检查您是否已经到达您担心的末尾行!

关于java - 从 System.In 读取没有换行符的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21714061/

相关文章:

java - 字符串分隔的正则表达式

java - 计算代表 n 分的可能组合的数量

java - Apache Velocity 2.0 如何编写自定义资源加载器?

java - 如何确保数据库中的文件路径共享相同的文件分隔符?

java - 将 blob 转换为 Mp3 但文件无法播放

java - 使用多线程写入文件

java - 使用 Java 从 $PATH 获取可执行文件的绝对路径

带有 System.exit 的 Java 静态 block 关闭 Hook

java - 缓冲短 I/O

java - 如何向特定的 toast 函数添加参数?