Разделение строки на несколько пробелов в java [дубликат]

Возможные Дубликаты:
как разделить строку на пробел

мне нужна помощь при разборе текстового файла. Текстовый файл содержит такие данные, как

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

моя проблема в том, что пробелы между словами не похожи. Иногда существует одно пространство, а иногда задается несколько пространств.

мне нужно разделить строку таким образом, чтобы я получал только слова, а не пробелы.

7 ответов


попробуйте увидеть str.split("\s+"). Он возвращает массив строк (String[]).


можно использовать 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

вы можете использовать regex шаблон

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.

используйте регулярное выражение.

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

можно использовать
replaceAll (string regex, string replacement) метод класса String для замены нескольких пробелов пробелом, а затем вы можете использовать метод split.


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

Я даю вам другой метод tockenize вашей строки, Если вы не хотите использовать метод 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());
}
 }