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

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

AA
BB
CC
DD
zip 

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

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

当前回答

试试下面的代码:

var string = 'AA.BB-CC-DD.zip';
array = string.split(/[,.]/);

其他回答

你给split的字符串是正则表达式的字符串形式,所以:

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

这意味着对[]中的任何字符进行拆分(我们必须用反斜杠转义-因为它在[]中是特殊的;当然我们必须转义反斜杠,因为这是一个字符串)。(相反的,。通常是特殊的,但在[]内部并不特殊。)

用番石榴你可以这样做:

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

我会使用Apache Commons:

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

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

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

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

String[] token=s.split("[.-]");