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

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

AA
BB
CC
DD
zip 

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

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

当前回答

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

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

其他回答

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

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

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

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

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

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

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

最好使用这样的代码:

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

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

对于两个字符序列作为delimeter“AND”和“OR”,这应该工作。使用时别忘了修剪。

 String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
 String[] cities = text.split("AND|OR"); 

结果:城市={"伊斯坦布尔","纽约","巴黎","东京","莫斯科"}