我有一个URL字符串,我需要在最后的“/”
之后替换最后一个字符集在Ruby中,这将是:
str = "/some/url/structure" ar = str.split("/") ar[ar.length-1] = "path" string = ar.join("/") >> "/some/url/path"
我怎样才能用Java做到这一点?
答案 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')。