将字符串拆分到第n个定界符

时间:2019-04-13 07:21:33

标签: java groovy

我正在尝试分割字符串,保留定界符并基于第N个定界符保存到新字符串。例如。

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

我想存储HELLO-WORLD-GREAT并切碎-DAY

我可以使用split[x]捕获各个元素,但似乎无法找出将其断言为新的string以便稍后使用的最佳方法。

有个主意吗?

我尝试使用“ last last”和“ first first”等。

我需要能够捕获输入字符串的前三个元素

4 个答案:

答案 0 :(得分:1)

拆分并合并:

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;
}

答案 1 :(得分:1)

尝试以下操作:

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", "-");

答案 2 :(得分:1)

我可以想到的两种简单方法:

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

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

String.join的结果与split

def result = String.join('-', hw.split('-')[0..-2])

答案 3 :(得分:0)

您可以使用groovy做

​"HELLO-WORLD-GREAT-DAY".split('-')[0..-2].join('-')​​​​