Получить все слова в предложении Arrya, игнорируя пробелы?

1

Я хочу прочитать все слова в предложении, в Массив. Проблема в том, что между словами может быть любое количество пробелов.

Example - "I    am a good      boy".

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

Код, который я использовал для этого, приведен ниже. Пожалуйста, проигнорируйте, остальная часть кода.

class test {
    public static void main(String[] args){
         // c. Total the 100 elements of floating-point array c and print them.
        double c[] = new double [100];
        String str="BusNo 123    ArrivalTime 1030   Departure 1420  ";
        String split[]=str.split(" ");
        double total=0;
        //Initialize C with Random Numbers from 0 to 10,000 Randomly
        for(int k=0;k<100;k++){
            c[k]=Math.random() *10000;
            total+=c[k]; //Find the Total;
            System.out.printf("C is %f\n",c[k]);
        }
        System.out.printf("Total is %f\n", total);
    }
}

Для моего примера текста, как показано выше, массив split [] будет следующим:

[I, , , , am, a, good, , , , , , boy]

Я знаю, обходной путь, что у меня может быть цикл после моего str.split() и игнорировать все пробелы.

Я был бы признателен, если есть лучший способ читать напрямую без каких-либо пробелов

Теги:

2 ответа

3
Лучший ответ

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

String split[] = str.split("\\s+");
  • 0
    Спасибо за ответ и ссылку. Оно работает.
3

Только для пробелов вы можете использовать

String[] strings = input.split("[ ]+");

или

String[] strings = input.split(" +");

Для любых пробелов (пробелов, вкладок или новых строк) используйте

String[] strings = input.split("\\s+");
  • 0
    Спасибо за ответ.
  • 0
    Пожалуйста. Спасибо за голосование.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню