我正在尝试分割字符串,保留定界符并基于第N个定界符保存到新字符串。例如。
String s = "HELLO-WORLD-GREAT-DAY"
我想存储HELLO-WORLD-GREAT
并切碎-DAY
。
我可以使用split[x]
捕获各个元素,但似乎无法找出将其断言为新的string
以便稍后使用的最佳方法。
有个主意吗?
我尝试使用“ last last”和“ first first”等。
我需要能够捕获输入字符串的前三个元素
答案 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('-')