在java中的多个空格上拆分字符串

时间:2012-10-26 05:56:13

标签: java string split

  

可能重复:
  How to split a String by space

解析文本文件时我需要帮助。 文本文件包含

之类的数据
This is     different type   of file.
Can not split  it    using ' '(white space)

我的问题是单词之间的空格不相似。有时会有一个空格,有时会给出多个空格。

我需要分割字符串,这样我才能得到单词,而不是空格。

7 个答案:

答案 0 :(得分:37)

尝试查看str.split("\\s+")。它返回一个字符串数组(String[])。

答案 1 :(得分:13)

您可以使用Quantifiers指定要拆分的空格数: -

    `+` - Represents 1 or more
    `*` - Represents 0 or more
    `?` - Represents 0 or 1
`{n,m}` - Represents n to m

因此,\\s+会将您的字符串拆分为one or more空格

String[] words = yourString.split("\\s+");

另外,如果您想指定一些特定数字,则可以在{}

之间指定范围
yourString.split("\\s{3,6}"); // Split String on 3 to 6 spaces

答案 2 :(得分:5)

你可以使用正则表达式

public static void main(String[] args)
{
    String s="This is     different type   of file.";
    String s1[]=s.split("[ ]+");
    for(int i=0;i<s1.length;i++)
    {
        System.out.println(s1[i]);
    }
}

输出

This
is
different
type
of
file.

答案 3 :(得分:3)

使用正则表达式。

String[] words = str.split("\\s+");

答案 4 :(得分:0)

你可以使用
String类的replaceAll(String regex,String replacement)方法用空格替换多个空格然后可以使用split方法。

答案 5 :(得分:0)

String spliter="\\s+";
String[] temp;
temp=mystring.split(spliter);

答案 6 :(得分:0)

如果你不想使用split方法,我会给你另一个方法来tockenize你的字符串。这是方法

public static void main(String args[]) throws Exception
{
    String str="This is     different type   of file.Can not split  it    using ' '(white space)";
    StringTokenizer st = new StringTokenizer(str, " "); 
    while(st.hasMoreElements())
    System.out.println(st.nextToken());
}
 }