我需要根据分隔符分割字符串-和..下面是我想要的输出。
AA.BB-CC-DD.zip - - - >
AA
BB
CC
DD
zip
但是我下面的代码不能工作。
private void getId(String pdfName){
String[]tokens = pdfName.split("-\\.");
}
我需要根据分隔符分割字符串-和..下面是我想要的输出。
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接受可变参数,所以我们可以传递多个参数作为delimeter
String[]tokens = pdfName.split("-",".");
您可以传递任意数量的参数。
对于两个字符序列作为delimeter“AND”和“OR”,这应该工作。使用时别忘了修剪。
String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
String[] cities = text.split("AND|OR");
结果:城市={"伊斯坦布尔","纽约","巴黎","东京","莫斯科"}
s.trim().split("[\\W]+")
应该工作。
你给split的字符串是正则表达式的字符串形式,所以:
private void getId(String pdfName){
String[]tokens = pdfName.split("[\\-.]");
}
这意味着对[]中的任何字符进行拆分(我们必须用反斜杠转义-因为它在[]中是特殊的;当然我们必须转义反斜杠,因为这是一个字符串)。(相反的,。通常是特殊的,但在[]内部并不特殊。)
我会使用Apache Commons:
进口org.apache.commons.lang3.StringUtils;
private void getId(String pdfName){
String[] tokens = StringUtils.split(pdfName, "-.");
}
它会在任何指定的分隔符上拆分,而不是StringUtils。splitByWholeSeparator(str, separator),使用完整的字符串作为分隔符