我正在尝试将字符串拆分为字符串[],但我没有得到预期的结果。 这有什么不对?
String animals = "dog|cat|bear|elephant|giraffe";
String[] animalsArray = animals.split("|");
我希望animalsArray包含以下内容:
animalsArray[0] = "dog"
animalsArray[1] = "cat"
animalsArray[2] = "bear"
...
但它仅包含:
animalsArray[0] = "d"
animalsArray[1] = "c"
animalsArray[2] = "b"
...
答案 0 :(得分:3)
String.split()
分裂正则表达式,而不只是一个普通的字符串,所以你必须逃避“|” (因为它有特殊意义)并按如下方式进行:
split("\\|")
答案 1 :(得分:3)
split
方法将正则表达式作为其参数,|
具有特殊含义。用反斜杠转义它,并为Java转义反斜杠本身:
String[] animalsArray = animals.split("\\|");
This page列出了Java正则表达式中的特殊符号。在“逻辑运算符”部分中查找|
。
答案 2 :(得分:0)
尝试使用 \\|
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String animals = "dog|cat|bear|elephant|giraffe";
String[] animalsArray = animals.split("\\|");
System.out.println(Arrays.toString(animalsArray));
}
}
控制台输出:
[dog, cat, bear, elephant, giraffe]