用字符替换每个第二个分隔符实例

时间:2015-03-13 12:02:58

标签: java string

输入字符串:

"/key1/2/key2/3/key4/5/key6/6/key7/7"  

需要将每个第二个分隔符"/"实例替换为":"

如果我们打破由"/"分隔的输入字符串并根据它构造输出字符串但需要找到最简单的方法来执行此操作,则可以对此进行操作。

预期输出字符串:

"/key1:2/key2:3/key4:5/key6:6/key7:7"      

3 个答案:

答案 0 :(得分:5)

您可以使用string.replaceAll功能。

String s = "/key1/2/key2/3/key4/5/key6/6/key7/7";
System.out.println(s.replaceAll("(/[^/]*)/", "$1:"));

<强>输出:

/key1:2/key2:3/key4:5/key6:6/key7:7

此正则表达式将匹配正对斜线,它捕获第一个正斜杠以及以下非/个字符。将所有匹配的字符替换为$1:将为您提供所需的输出。

DEMO

答案 1 :(得分:1)

尝试使用这样的正则表达式:

public static void main(String[] args) {
    String s = "/key1/2/key2/3/key4/5/key6/6/key7/7";
    System.out.println(s.replaceAll("(?<=\\d+)/(?=\\d+)", ":"));
}

O / P:

/key1:2/key2:3/key4:5/key6:6/key7:7

答案 2 :(得分:0)

拆分并重建字符串?

(伪代码)

boolean first = true;
out = "";
for(s:str.split("/")){
    if(!(first = !first)){
        out += "/"
    }else{
        out += ":"
    }
    out += s;
}