Java 拆分方法中不接受哪些字符?
我有以下代码:Java 拆分方法中不接受哪些字符?,java,string,Java,String,我有以下代码: String s = "100$ali$Rezaie" ; String[] ar = s.split("$") ; 以下字符在拆分中不起作用: . $ ^ split() 正如文档所说,split将regexp作为参数。诸如、$和^等字符在regexpes中具有特殊意义 这并不是说你不能用这些字符来分割字符串。不,您可以简单地转义regexp中的字符,使其行为“正常” split的参数是正则表达式,而不是单个字符。位于的页面列出了在正则表达式中具有特殊含义的所有
String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;
以下字符在拆分中不起作用:
. $ ^
split()
正如文档所说,split
将regexp作为参数。诸如
、$
和^
等字符在regexpes中具有特殊意义
这并不是说你不能用这些字符来分割字符串。不,您可以简单地转义regexp中的字符,使其行为“正常”
split
的参数是正则表达式,而不是单个字符。位于的页面列出了在正则表达式中具有特殊含义的所有字符。split()
方法接受正则表达式作为其输入。无论正则表达式有什么问题,split()都会有问题。
以下是Regex教程的文档:像这样使用
String[] parts = str.split("\\$");
\实际上相当于一个\(第一个\作为字符串文本中的Java转义序列是必需的)。然后它是正则表达式中的一个特殊字符,意思是“按字面意思使用下一个字符,不要解释它的特殊含义”。在Javasplit
中采用正则表达式
阅读有关正则表达式元字符的信息。它们是:
反斜杠\、插入符号^、美元符号$、句号或点。,
竖条或管道符号|,问号?,星号
或星形*、加号+、开头括号(、结束语)
括号),以及开口方括号[,开口卷曲
支架{
在大多数情况下,您可以使用反斜杠转义这些字符。在Java中,您需要使用第二个反斜杠转义这些反斜杠。因此,为了转义元字符,您需要使用\\
在你的例子中:
String[] ar = s.split("\\$") ;
该类列出了正则表达式在Java中的用法。如果在正则表达式语法中使用,则必须转义在其中找到的任何字符
如果要将该字符视为常规字符,则需要对其进行转义。我们可以使用“\”(双斜杠)作为前缀,并可以拆分字符串
String s = "100$ali$Rezaie" ;
String[] ar = s.split("\\$") ;
for (String str : ar) {
System.out.println(str);
}
也许阅读Javadoc中的String.split()会给你答案。原因:
String s = "100$ali$Rezaie" ;
String[] ar = s.split("\\$") ;
for (String str : ar) {
System.out.println(str);
}