我知道管道是一个特殊字符,我需要使用:
Scanner input = new Scanner(System.in);
String line = input.next();
String[] columns = line.split("\\|");
将管道用作分隔符。但是当我从命令行解析时,它并没有按照预期工作。
e.g。
当我从文件中解析时,这才起作用。但是,当输入有一个空格时,每当我从命令行解析输入时,它就会给出超出界限的错误,因为它将单词拆分为两个数组元素。
输入
a|5|Hello|3
输出:
columns[0] = "a";
columns[1] = "5";
columns[2] = "Hello";
columns[3] = "3";
虫:
输入:
a | 5 | Hello World | 3;
输出:
columns[0] = "a";
columns[1] = "5";
columns[2] = "Hello";
columns[3] = "World";
columns[4] = "3";
我希望列[3]为" Hello World"。我该如何解决这个问题?
答案 0 :(得分:0)
我认为您应该使用nextLine()而不是next()来获取用户的数据。
在我的情况下,它工作正常just click here 并检查源代码..
答案 1 :(得分:0)
next()只能读取输入直到空格。它无法读取由空格分隔的两个单词。此外, next()在读取输入后将光标放在同一行。 nextLine()读取包含单词之间空格的输入(即读取到行n的末尾)。
答案 2 :(得分:0)