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

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

 readBuf.split("^"); 

但这并没有拆分string.Infact这适用于所有其他分隔符,但不适用于^

split使用正则表达式(不幸的是,IMO)。 ^在正则表达式中有特殊含义,所以你需要转义它:

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

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

或者,使用Guava及其Splitter类。

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

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

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

你也可以用这个:

 readBuf.split("\\u005E"); 

\ u005E是“^”的hexUnicode字符,你需要添加一个“\”来逃避它。

可以通过这种方式转义所有字符。