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

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

AA
BB
CC
DD
zip 

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

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

当前回答

最好使用这样的代码:

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

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

其他回答

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

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

我认为你需要包含正则表达式或运算符:

String[]tokens = pdfName.split("-|\\.");

你所拥有的将会匹配: [DASH后面跟着DOT] -。 不 [破折号或DOT任意一个]-或者。

s.trim().split("[\\W]+") 

应该工作。

我会使用Apache Commons:

进口org.apache.commons.lang3.StringUtils;

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

它会在任何指定的分隔符上拆分,而不是StringUtils。splitByWholeSeparator(str, separator),使用完整的字符串作为分隔符

pdfName.split ("[.-]+");

(。-] ->任意一个。或-可以用作分隔符 +表示如果前面提到的分隔符连续出现,则应将其视为一个分隔符。