Java 中的字符串拆分给出了意想不到的结果
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]
我有一系列格式如下的字符串:“动物 || 类型 || 区域 ||”。
在 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*
允许在||
String animalString = "animal || type || area";
String animalArray[] = animalString.split("\s*\|\|\s*");
System.out.println("result = " + Arrays.toString(animalArray));
打印
result = [animal, type, area]