在java中为分隔符拆分字符串

时间:2011-10-28 06:06:30

标签: java android split delimiter

我的问题是我想用分隔符^在java中拆分字符串。 我正在使用的语法是:

readBuf.split("^");

但是这不会拆分字符串。实际上这适用于所有其他分隔符,但不适用于^

4 个答案:

答案 0 :(得分:12)

split使用正则表达式(不幸的是,IMO)。 ^在正则表达式中具有特殊含义,因此您需要将其转义:

String[] bits = readBuf.split("\\^");

(Java转义需要第一个反斜杠。实际的字符串只是一个反斜杠和插入符号。)

或者,使用Guava及其Splitter类。

答案 1 :(得分:2)

使用\\^。因为^是一个特殊字符,表示行锚的开始。

String x = "a^b^c";
System.out.println(Arrays.toString(x.split("\\^"))); //prints [a,b,c]

答案 2 :(得分:0)

或者你可以使用... StringTokenizer而不是分裂
 StringTokenizer st=new StringTokenizer(Your string,"^");
while(st.hasMoreElements()){
System.out.println(st.nextToken());
}

答案 3 :(得分:0)

您也可以使用:

readBuf.split("\\u005E");

\ u005E是“^”的十六进制Unicode字符,你需要添加一个“\”来转义它。

所有角色都可以通过这种方式进行转义。