Как мне заполнить новый массив разделенными частями из существующего? (Джава) - PullRequest
0 голосов
/ 28 сентября 2011

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

Что я делаю не так?

(предположим, что предложения [i] - это существующий массив)

    String phrase = sentences[i];

    String[] sentencesArray = phrase.split("");

    System.out.println(sentencesArray[i]);

Спасибо!

Ответы [ 4 ]

2 голосов
/ 28 сентября 2011

Это может быть просто неверный вывод консоли Попробуйте заменить последнюю строку на

System.out.println(java.util.Arrays.toString(sentencesArray));

Аргумент пустой строки для phrase.split("") тоже подозрительный. Попробуйте передать границу слова:

phrase.split("\\b");
0 голосов
/ 28 сентября 2011

Ничего полезного не делает:

String[] sentencesArray = phrase.split("");

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

Трудно сказать по вашему вопросу / коду, что вы пытаетесь сделать, но если вы хотите разделить слова, вам нужно что-то вроде:

private static final Pattern SPC = Pattern.compile("\\s+");
.
.
String[] words = SPC.split(phrase);

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

0 голосов
/ 28 сентября 2011
String[] sentencesArray = phrase.split("");

Регулярное выражение , на основе которого нужно разделить phrase, здесь - ничто. Если вы хотите разделить его на основе пробела, используйте:

String[] sentencesArray = phrase.split(" ");
                                   //   ^ Give this space
0 голосов
/ 28 сентября 2011

Вы используете пустое выражение для разбиения, попробуйте phrase.split(" ") и работайте оттуда.

...