我需要传递给java.lang.String.split()以使用所有空白字符(' ','\t', '\n'等)作为分隔符将字符串分割为子字符串数组的正则表达式模式是什么?


当前回答

你也可以有一个UniCode不间断空格xA0…

String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking

其他回答

因为它是一个正则表达式,我假设你也不会想要非字母数字字符,如逗号,点,等,可以被空格包围(例如。“one, two”应该给出[one][two]),它应该是:

myString.split(/[\s\W]+/)

Apache Commons Lang有一个方法可以用空白字符作为分隔符分割字符串:

StringUtils.split("abc def")

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html分裂(以)

这可能比正则表达式模式更容易使用。

你也可以有一个UniCode不间断空格xA0…

String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking

学习代码..祝你好运

    import java.util.*;
class Demo{
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        System.out.print("Input String : ");
        String s1 = input.nextLine();   
        String[] tokens = s1.split("[\\s\\xA0]+");      
        System.out.println(tokens.length);      
        for(String s : tokens){
            System.out.println(s);

        } 
    }
}

“\\s+”应该可以