我需要根据分隔符分割字符串-和..下面是我想要的输出。

AA.BB-CC-DD.zip - - - >

AA
BB
CC
DD
zip 

但是我下面的代码不能工作。

private void getId(String pdfName){
    String[]tokens = pdfName.split("-\\.");
}

当前回答

试试这个正则表达式“[-.]+”。后面的+将连续的分隔符字符视为一个字符。如果你不想要这个,就去掉加号。

其他回答

用番石榴你可以这样做:

Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);

试试这个正则表达式“[-.]+”。后面的+将连续的分隔符字符视为一个字符。如果你不想要这个,就去掉加号。

你也可以在split()方法中指定正则表达式作为参数。请看下面的例子....

private void getId(String pdfName){
String[]tokens = pdfName.split("-|\\.");
}

最好使用这样的代码:

s.split("[\\s\\-\\.\\'\\?\\,\\_\\@]+");

添加了一些其他字符作为示例。这是最安全的方法,因为。和'被治疗。

如果您知道刺将始终采用相同的格式,则首先根据。并将字符串存储在变量的第一个索引处。然后基于-在第二个索引中拆分字符串,并存储索引0、1和2。最后,对前一个数组的索引2进行拆分。您应该已经获得了所有相关字段。

参考以下片段:

String[] tmp = pdfName.split(".");
String val1 = tmp[0];
tmp = tmp[1].split("-");
String val2 = tmp[0];
...