[英]String Split in Java Giving Unexpected Results
我有一系列具有以下格式的字符串:“动物 || 类型 || 区域 ||”。
在 Java 中,我试图拆分字符串,这样我就可以只使用第一部分。 我在网上阅读的所有内容都说拆分字符串:
String animalString = "animal || type || area"
String animalArray[] = animalString.split("||")
System.out.println("result = " + Arrays.toString(animalArray));
但是,当我拆分字符串时,它不仅仅基于“||”进行拆分除法而是拆分每个字母:
result = [a, n, i, m, a, l, , |, |, , t, y, p, e, , |, |, , a, r, e, a, , |, |]
当我向 split 方法添加分隔符时,它会分隔字符串的第一部分,因此无效。
如何拆分具有上述格式的字符串,以便我可以在数组中获取三个单词本身而不仅仅是字母?
你需要双重逃避他们。 一次用于String
一次用于regex
。 \\
转义斜杠,以便它可以作为\|
传递给正则表达式逃脱了|
.
\\s*
允许在||
前后有 0 个或多个空格
String animalString = "animal || type || area";
String animalArray[] = animalString.split("\\s*\\|\\|\\s*");
System.out.println("result = " + Arrays.toString(animalArray));
印刷
result = [animal, type, area]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.