Разделение строки на разделитель n - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь разбить строку, сохранить разделители и сохранить в новую строку на основе N-го разделителя. Например.

String s = "HELLO-WORLD-GREAT-DAY"

Я хотел бы сохранить HELLO-WORLD-GREAT и отрубить -DAY.

Я могу захватить отдельные элементы, используя split[x], но, похоже, я не могу найти лучший способ заявить об этом новому string, который будет использоваться позже.

Любые люди идеи?

Я пытался использовать сплит последний и первый и т. Д.

Мне нужно иметь возможность захватить первые три элемента входной строки

Ответы [ 4 ]

1 голос
/ 13 апреля 2019

Попробуйте следующее:

public String removeLast(String target, String delimiter) {
    int pos = target.lastIndexOf(delimiter);
    return pos == -1 ? target : target.substring(0, pos);
}

Вы бы назвали метод следующим образом:

String result = removeLast("HELLO-WORLD-GREAT-DAY", "-");
1 голос
/ 13 апреля 2019

Два простых способа, которые я могу придумать:

String hw = "HELLO-WORLD-GREAT-DAY"

def result = hw - hw.substring(hw.lastIndexOf('-'))

И String.join с результатом split:

def result = String.join('-', hw.split('-')[0..-2])
1 голос
/ 13 апреля 2019

Разделить и объединить:

public String removeLast(String input) {
    //Split your input
    String[] parts = input.split("-");

    //Combine to a new string, leaving out the last one
    String output = parts[0];
    for (int i = 1; i < parts.length - 1; i++) {
        output += "-" + parts[i];
    }
    return output;
}
0 голосов
/ 13 апреля 2019

С Groovy вы можете сделать

​"HELLO-WORLD-GREAT-DAY".split('-')[0..-2].join('-')​​​​
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...