用Java替换Exact String

时间:2015-04-01 19:37:01

标签: java regex string replace

这是我收到的字符串:

http://sdsadasd/time/time.jsp?tp=&a

现在我想用 java.jsp 替换第二个 time.jsp ,但是不是第一个“时间”?

我怎样才能实现它?我已经尝试了这个,但它不起作用:

replaceAll("\\btime.jsp"", "java.jsp");

感谢。

3 个答案:

答案 0 :(得分:1)

试试这个:

replaceAll("time.jsp", "java.jsp");

答案 1 :(得分:1)

您可以使用:

String result = "http://sdsadasd/time/time.jsp?tp=&a".replaceFirst("time\\.jsp", "java.jsp");

或者使用好友ApacheCommon StringUtils ...

String result = StringUtils.replaceOnce("http://sdsadasd/time/time.jsp?tp=&a", "time.jsp", "java.jsp");

例如,你可以这样做:

public static void main(String[] args) {
    String result = "http://sdsadasd/time/time.jsp?tp=&a".replaceFirst("time\\.jsp", "java.jsp");
    System.out.println(result);
}

// Print: 
http://sdsadasd/time/java.jsp?tp=&a 

答案 2 :(得分:0)

如果我正确理解了您的问题,您希望仅替换 第二次出现" time.jsp"。

Try the following:

    boolean replace = false;
    int index = myString.indexOf("time.jsp");
    while(index != -1) {
        String substr = myString.substring(index);
        if(replace) {
            //do your replacement
        }
        index = myString.indexOf("time.jsp", index + 1);
    }

我没有编译它,但它是一个可以使用的通用解决方案!