How do I split a string with any whitespace chars

2018-12-31 03:28发布

What regex pattern would need I to pass to the java.lang.String.split() method to split a String into an Array of substrings using all whitespace characters (' ', '\t', '\n', etc.) as delimiters?

12条回答
冷夜・残月
2楼-- · 2018-12-31 04:01

Something in the lines of

myString.split("\\s+");

This groups all white spaces as a delimiter.

So if I have the string:

"Hello[space][tab]World"

This should yield the strings "Hello" and "World" and omit the empty space between the [space] and the [tab].

As VonC pointed out, the backslash should be escaped, because Java would first try to escape the string to a special character, and send that to be parsed. What you want, is the literal "\s", which means, you need to pass "\\s". It can get a bit confusing.

The \\s is equivalent to [ \\t\\n\\x0B\\f\\r]

查看更多
深知你不懂我心
3楼-- · 2018-12-31 04:01
String str = "Hello   World";
String res[] = str.split("\\s+");
查看更多
大哥的爱人
4楼-- · 2018-12-31 04:06

Apache Commons Lang has a method to split a string with whitespace characters as delimiters:

StringUtils.split("abc def")

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#split(java.lang.String)

This might be easier to use than a regex pattern.

查看更多
只若初见
5楼-- · 2018-12-31 04:07

Since it is a regular expression, and i'm assuming u would also not want non-alphanumeric chars like commas, dots, etc that could be surrounded by blanks (e.g. "one , two" should give [one][two]), it should be:

myString.split(/[\s\W]+/)
查看更多
零度萤火
6楼-- · 2018-12-31 04:12

To get this working in Javascript, I had to do the following:

myString.split(/\s+/g)
查看更多
刘海飞了
7楼-- · 2018-12-31 04:14

Study this code.. good luck

    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);

        } 
    }
}
查看更多
登录 后发表回答