java字符串拆分没有给出预期的结果

时间:2013-11-15 19:35:11

标签: java split arrays

我正在尝试将字符串拆分为字符串[],但我没有得到预期的结果。 这有什么不对?

    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"
    ...

3 个答案:

答案 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]