我正在从 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/