我需要拆分的分隔符串基地-和..以下是我想要的输出.
AA.BB-CC-DD.zip - >
AA
BB
CC
DD
zip
Run Code Online (Sandbox Code Playgroud)
但我的以下代码不起作用.
private void getId(String pdfName){
String[]tokens = pdfName.split("-\\.");
}
Run Code Online (Sandbox Code Playgroud)
Ric*_*d H 296
我认为你需要包含正则表达式OR运算符:
String[]tokens = pdfName.split("-|\\.");
Run Code Online (Sandbox Code Playgroud)
你拥有的将匹配" - ." 不是" - " 或 "."
Pet*_*ego 48
试试这个正则表达式"[-.]+".+ after将连续的分隔符字符视为一个.如果您不想要,请删除加号.
小智 26
您可以使用正则表达式"\ W".这匹配任何非单词字符.所需的行将是:
String[] tokens=pdfName.split("\\W");
Run Code Online (Sandbox Code Playgroud)
Col*_*inD 12
使用Guava你可以这样做:
Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);
Run Code Online (Sandbox Code Playgroud)
T.J*_*der 11
您提供split的字符串是正则表达式的字符串形式,因此:
private void getId(String pdfName){
String[]tokens = pdfName.split("[\\-.]");
}
Run Code Online (Sandbox Code Playgroud)
这意味着要拆分[](我们必须-用反斜杠转义,因为它在内部是特殊的[];当然我们必须转义反斜杠,因为这是一个字符串).(相反,.通常是特殊的,但内部并不特别[].)
对于作为分隔符“AND”和“OR”的两个字符序列,这应该起作用。使用时不要忘记修剪。
String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
String[] cities = text.split("AND|OR");
Run Code Online (Sandbox Code Playgroud)
结果:城市 = {“伊斯坦布尔”、“纽约”、“巴黎”、“东京”、“莫斯科”}