对于以下输入,我希望所有字符串都以“|”分隔在数组中可用。但只有第一个字符串可用,下一个字符串部分可用。其余的根本不可用。请帮助我理解它。我探索了所有的帮助文档和以前的 stackoverflow 东西,但无法解决它。我也尝试使用 split(String regex,int limit) 但没有用。我不想替换空格,因为我需要保留它。
输入“1|纽约|1345|134|45634” 预期输出为:1,New York,1345,134,45634 实际输出为:1,New
public class test1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String strinp=scanner.next();
//System.out.println(strinp.replaceAll(" ", ""));
String[] strArr=strinp.split("\\|");
//System.out.println(Arrays.deepToString(strArr));
for (String s:strArr) {
System.out.println(s);
}
}
}
最佳答案
scanner.next()
在空格上拆分。因此,您的第一个 scanner.next()
调用读取 1|New
然后将其拆分。
使用scanner.nextLine()
读取整行,分割成功。
关于Java Split ("\\|") 不适用于带空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611553/