我有以下代码:
String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;
以下字符在拆分中不起作用:
. $ ^
split()
方法中是否还有其他字符不被接受?
答案 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)
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);
}