Reputation: 4934
My question is that I want to split string in java with delimiter ^
.
And syntax which I am using is:
readBuf.split("^");
But this does not split the string.Infact this works for all other delimiters but not for ^
.
Upvotes: 4
Views: 5670
Reputation: 15886
You can use StringTokenizer
instead of split
StringTokenizer st=new StringTokenizer(Your string,"^");
while(st.hasMoreElements()){
System.out.println(st.nextToken());
}
Upvotes: 0
Reputation: 1500495
split
uses regular expressions (unfortunately, IMO). ^
has special meaning in regular expressions, so you need to escape it:
String[] bits = readBuf.split("\\^");
(The first backslash is needed for Java escaping. The actual string is just a single backslash and the caret.)
Alternatively, use Guava and its Splitter
class.
Upvotes: 12
Reputation: 2739
You can also use this:
readBuf.split("\\u005E");
the \u005E is the hexidecimal Unicode character for "^", and you need to add a "\" to escape it.
All characters can be escaped in this way.
Upvotes: 0
Reputation: 9664
Use \\^
. Because ^
is a special character indicating start of line anchor.
String x = "a^b^c";
System.out.println(Arrays.toString(x.split("\\^"))); //prints [a,b,c]
Upvotes: 2