String.split() — How do I treat consecutive delimi

2020-03-01 17:24发布

问题:

For two sample strings in variable temp such as these:

(1) "|RYVG|111|9|"
(2) "|RYVG|111||9|"

I want to do the following:

String splitRating[] = temp.split("\\|",);

But I want the result to be the same, which is:

splitrating[0] = ""
splitrating[1] = "RYVG"
splitrating[2] = "111"
splitrating[3] = "9

This means that I need to treat that double "|" as one delimiter. Is there any way to do this while still using String.split()?

回答1:

Add a + to match one or more instances of the pipe:

temp.split("\\|+");


回答2:

Try this:-

String splitRating[] = temp.split("\\|+");


回答3:

Yes it is possible

 class  Split
{
public static void main(String[] args) 
{
    String temp="|RYVG|111||9|";

    String splitRating[] = temp.split("\\|+");

    for(String split:splitRating){
    System.out.println(split);
}
}
    }


回答4:

StringUtils split method considers the consecutive delimiters as one delimiter.

org.apache.commons.lang.StringUtils.split("|");