2012-08-31 47 views
3

我想在java.But中拆分函数,但它工作不正常。我该如何分割?

String mystring = "ersin#$gulbahar#$ev"; 
String [] scripts= mystring.split("#$"); //it does not split. 

我该如何解决这个问题?

+1

你的问题源于split使用正则表达式,$是正则表达式中的特殊字符。为了像文字而不是特殊字符那样对待它,你需要像下面的答案那样用\\来逃避它。 – FloppyDisk

回答

6
String mystring = "ersin#$gulbahar#$ev"; 
String[] scripts = mystring.split("#\\$"); 
System.out.println(Arrays.toString(scripts)); 

OUTPUT:

[ersin, gulbahar, ev] 
+0

java.util.Arrays是否有一个字符串数组的toString? – squiguy

+0

@squiguy是的,它为每个任意对象类型都有一个toString方法。由于'String'也覆盖了toString,所以它可以正常工作。 –

+0

@ThomasJungblut我知道Object,我只是想澄清一下为什么要使用它的人。所以是的,你是对的。 – squiguy

0

逃生$在您的表达式:拆分()需要一个正则表达式作为参数!常见的问题...

1

试试这个:

mystring.split("#\\$") 

拆分方法使用正则表达式来分割文本,$字符具有其他平均值在正则表达式

1

split需要一个正则表达式作为参数和$是一个正则表达式中的特殊字符,意思是“匹配字符串的结尾”。

既然你想匹配字面$,而不是字符串的末尾,你需要用一个反斜杠来转义它:mystring.split("#\\$");应该工作。