拆分方法中哪些字符不接受?

时间:2013-10-17 11:42:44

标签: java string

我有以下代码:

String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;

以下字符在拆分中不起作用:

.   $    ^

split()方法中是否还有其他字符不被接受?

7 个答案:

答案 0 :(得分:3)

split的参数是正则表达式,而不是单个字符。 http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html处的页面列出了正则表达式中具有特殊含义的所有字符。

答案 1 :(得分:1)

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29

正如文档所说,split将regexp作为参数。 .$^等字符在正则表达式中具有特殊含义。

并不是说你无法使用这些字符来分割字符串。不,你可以简单地逃避正则表达式中的角色,使它们表现得通常"通常"。

String[] ar = s.split("\\$");

答案 2 :(得分:1)

像这样使用

String[] parts = str.split("\\$");

\实际上等同于单个\(第一个\需要作为字符串文字中的Java转义序列)。它是正则表达式中的一个特殊字符,意思是“按字面意思使用下一个字符,不要解释它的特殊含义”。

答案 3 :(得分:0)

split()方法接受正则表达式作为其输入。无论RegEx遇到什么问题,split()都会遇到问题。
以下是正则表达式教程的文档:http://docs.oracle.com/javase/tutorial/essential/regex/

答案 4 :(得分:0)

Java中的

split采用正则表达式。

了解正则表达式元字符here。他们是:

  

反斜杠\,插入符号^,美元符号$,句点或点。   垂直条或管道符号|,问号?,星号   或星号*,加号+,左括号(,结束   括号)和开口方括号[,开口卷曲   大括号{ 1

在大多数情况下,您可以使用反斜杠转义这些字符。在Java中,您需要使用第二个反斜杠来转义反斜杠。因此,为了逃避元字符,您需要使用\\

所以在你的例子中:

String[] ar = s.split("\\$") ;

答案 5 :(得分:0)

Pattern类列出了在Java中使用正则表达式。如果在正则表达式语法中使用,那么您在那里找到的任何字符都必须进行转义。

如果您想将该角色视为常规角色,则需要将其转义。

答案 6 :(得分:0)

我们可以使用“\”(双斜杠)作为前缀,我们可以拆分字符串..

String s = "100$ali$Rezaie" ;
String[] ar = s.split("\\$") ;
for (String str : ar) {
System.out.println(str);
}