Java - 字符串拆分替换和连接

时间:2011-04-04 07:27:35

标签: java

我有一个URL字符串,我需要在最后的“/”

之后替换最后一个字符集

在Ruby中,这将是:

str = "/some/url/structure"
ar = str.split("/")
ar[ar.length-1] = "path"
string = ar.join("/")
>> "/some/url/path"

我怎样才能用Java做到这一点?

6 个答案:

答案 0 :(得分:7)

此片段演示了如何使用Java:

System.out.println("one/two/four".replaceAll("/[^/]+$", "/three"));

它接受输入String("one/two/four")并用替换String替换从最后一个斜杠(包括斜杠)开始的所有内容。

次要更改 - +而不是*保留带有斜杠的网址作为最后一个字符不变。对我来说似乎是一个更实际的解决方案。

答案 1 :(得分:5)

我不完全明白,你究竟想要什么,但你可以从你的字符串中构建一个StringBuilder,使用它的lastIndexOf("/")方法来确定最后/位置,以及最后,使用append()replace()添加内容(或代替当前结尾)。

答案 2 :(得分:2)

如果您不习惯正则表达式,请使用此选项。

url.substring(0, url.lastIndexOf("/")+1).concat("newvalue");

答案 3 :(得分:2)

Frozen Spider是绝对正确的。 您可以使用以下代码:

String str = "/some/url/structure";
int lst=str.lastIndexOf("/");
str=str.replace(str.substring(lst+1),"path");
System.out.println(str);

我做的是,我取了'\'的最后一个索引,并用“path”替换了从上一个'/'开始的字符串。

完全最短的形式:

System.out.println(str.replace(str.substring(str.lastIndexOf("/")+1),"path"));

答案 4 :(得分:0)

试试这个...

String str = "/some/url/structure";
    String[] ar = str.split("/");
    int n = ar.length;
    str = "";
    for (int i = 0; i < (n - 1); i++) {
        str += ar[i] + "/";
    }
    str += "path";
    System.out.println(str);

答案 5 :(得分:-1)

我认为你想用你的内容替换/构建。然后你应该尝试 str.replce('/ structure','/ parth')