我有一个格式为{{1}}的字符串,我希望将第一个“ - ”替换为“_”,将第二个“ - ”替换为“。”我们无法预测“123”部分和“def”部分的价值。
实现这一目标的最有效方法是什么?
答案 0 :(得分:5)
你可以在循环中使用replacefirst。
String[] replacements = {"_", "."};
String str = "abc-123-def";
for (String replacement : replacements) {
str = str.replaceFirst("-", replacement);
}
这将按替换数组的顺序替换每个-
。
或者,如果你更喜欢使用java 8功夫:
str = Stream.of("_", ".").reduce(str, (a, b) -> a.replaceFirst("-", b));
答案 1 :(得分:0)
您可以使用: String str =“abc-123-def”;
str.replaceFirst( “ - ”, “_”)replaceFirst( “ - ”, “”);