替换 Java 中的确切字符串

Replace Exact String in Java

这是我得到的字符串:

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

现在我想用 java.jsp 替换第二个 time.jsp 不是第一个"time"?

如何实现?我已经试过了,但没用:

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

谢谢。

试试这个:

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

您可以使用:

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

或者用好朋友ApacheCommonStringUtils...

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 

如果我对您的问题的理解正确,您只想替换 第二次出现的 "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);
    }

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