37

可能重复:
如何按空格分割字符串

我在解析文本文件时需要帮助。文本文件包含如下数据

This is     different type   of file.
Can not split  it    using ' '(white space)

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

我需要以这样一种方式拆分字符串,使我只能得到单词,而不是空格。

4

7 回答 7

78

str.split("\\s+")会工作。正+则表达式末尾的 将多个空格视为单个空格。String[]它返回一个没有任何" "结果的字符串数组 ( )。

于 2012-10-26T05:58:18.107 回答
23

您可以使用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
于 2012-10-26T05:59:05.420 回答
6

使用正则表达式。

String[] words = str.split("\\s+");
于 2012-10-26T05:58:33.223 回答
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.
于 2012-10-26T06:00:43.813 回答
0

如果你不想使用 split 方法,我给你另一种方法来标记你的字符串。这是方法

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());
}
 }
于 2012-10-26T06:23:25.113 回答
0

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

于 2012-10-26T06:00:20.473 回答
0
String spliter="\\s+";
String[] temp;
temp=mystring.split(spliter);
于 2012-10-26T06:15:54.177 回答