получать слова перед определенным строковым значением

1

Некоторое время назад я задал вопрос о следующем методе и придумал совершенно другой вопрос. Предположим, что у меня есть String AB → C или AB → carry sum или XY Cin → Cout Sum. Как я могу извлечь слова раньше -> без включения ->? А потом извлечение слов после ->?

public void parseContactsLine(String line)
    {
        String[] words = line.split("->");

        for(int i = 0; i < words.length; i++)
        {

        }
    }
  • 0
    Кажется, ты уже понял это, нет? String[] words = line.split("->"); хранит это для вас.
Теги:

1 ответ

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

Ваш первый сплит для "->" разделит на две строки список слов каждой стороны.

Затем вы можете повторно разбить пробелы с помощью .split("\\s"); чтобы получить список всех слов.

Вы закончите с

String[] wordsAfterLambda = line.split("->")[1].split("\\s");
for(String s : wordsAfterLambda)
    System.out.println(s);

Обратите внимание, что я использовал for-each вместо тех, for которых я предпочитаю, когда нет необходимости хранить индекс.


редактировать

Согласно вашему комментарию, [1] должен получить доступ к значению массива и не привязан к самому расколу, это то же самое, что и делать

String[] words = line.split("->");
String[] wordsAfterLambda = words[1].split("\\s");
  • 0
    Что означает [1] в сплите?
  • 0
    @Nikolay, первое разделение возвращает массив, поэтому я извлекаю второе значение, используя [1] .
Показать ещё 4 комментария
Сообщество Overcoder
Наверх
Меню