Java拆分(“\\ |”)不适用于空间字符串
对于下面的输入im期望所有以“|”分隔的字符串在数组中可用。但只有第一个字符串可用,下一个字符串部分可用,其余字符串根本不可用。请帮助我理解它。我探索了所有帮助文档和以前的stackoverflow的东西,但无法解决它。我尝试了split(String regex,int limit),但没用。我不想取代空白,因为我需要保留该空白。Java拆分(“\ |”)不适用于空间字符串
输入 “1 |纽约| 1345 | 134 | 45634” 预期成果是:1,纽约,1345,134,45634 实际输出为:1,新
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()
来读取整行,它将被成功分割。
回答:
变化:
String strinp = scanner.next();
要:
String strinp = scanner.nextLine();
回答:
或者,你可以声明扫描器:
Scanner scanner = new Scanner(System.in).useDelimiter("\\n");
以上是 Java拆分(“\\ |”)不适用于空间字符串 的全部内容, 来源链接: utcz.com/qa/257859.html