我想拆分一个包含这样内容的字符串:
a$b$c
Run Code Online (Sandbox Code Playgroud)
但是当我使用时:
String data=...
data.split("$");
Run Code Online (Sandbox Code Playgroud)
它不会识别$并且不会拆分字符串,但是当我用某些字母替换$时,它会起作用.有没有人有任何想法?
ape*_*ins 97
split函数采用正则表达式而不是字符串来匹配.你的正则表达式使用一个特殊的字符 - 在这种情况下是'$' - 所以你需要改变它以逃避该字符:
String line = ...
String[] lineData = line.split("\\$");
Run Code Online (Sandbox Code Playgroud)
另请注意,split返回一个字符串数组 - 字符串是不可变的,因此无法修改它们.对String进行的任何修改都将以新String返回,并且不会更改原始字符串.因此lineData = line.split("\\$");
以上.
And*_*lio 15
split方法接受String作为第一个参数,然后将其解释为正则表达式.
美元符号是正则表达式中的特定运算符,因此您必须以这种方式将其转义才能获得所需内容:
String data = ...
String[] parts = data.split("\\$");
Run Code Online (Sandbox Code Playgroud)
或者,如果分隔符可能会更改,则可以通过以下方式更加通用:
String data = ...
String[] parts = data.split(java.util.regex.Pattern.quote("$"));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39757 次 |
最近记录: |