使用split()方法输出错误?

时间:2012-02-20 11:17:01

标签: java string split

我正在尝试使用简单的split()方法,但我得到的输出不正确。我正在使用此代码:

        question = newobject.ACTIVITY_LIST_OF_QUESTIONS.split("|");

其中newobject.ACTIVITY_LIST_OF_QUESTIONS包含1 | 2 | 8 | 11 | 4 | 5 | 6 | 14 | 15 | 16 | 13 | 17 | 7 | 9 | 12 | 10作为字符串所以我必须得到每个数字在数组索引中。

但不是我得到输出 -

       1
       |
       2
       |
       8

请帮助如果有人遇到同样的问题?

3 个答案:

答案 0 :(得分:3)

您应该使用split("\\|")。您需要打破regex |的特殊含义。您可以使用\\|执行此操作。 [注意split()根据正则表达式进行拆分。

String s = "1|2|8|11|4|5|6|14|15|16|13|17|7|9|12|10";
String[] arr = s.split("\\|");
System.out.println(Arrays.toString(arr));

结果:

[1, 2, 8, 11, 4, 5, 6, 14, 15, 16, 13, 17, 7, 9, 12, 10]

答案 1 :(得分:1)

您需要将|转义为\\|。您的正则表达式被解释为“空字符串or空字符串”,因此每个位置都匹配。

答案 2 :(得分:1)

|是用于表示更改的正则表达式字符。要表示文字|,您需要将其作为\\|转义或将其放入字符类[|]