我有一个字符串,其中我需要用另一个词替换一个词。这是我的绳子 clientId
作为 /qw/ty/s11/dc3/124
我还有一根绳子 id
作为 p13
. 我想替换 s11
在 clientId
字符串 p13
.
格式 clientId
总是一样的。意味着会有三个slah /
总是在这之后,我需要用另一个词替换这个词,所以三个斜杠之后的任何词,我都需要用 id
.
String clientId = "/qw/ty/s11/dc3/124";
String id = "p13";
String newId = ""; // this should come as /qw/ty/p13/dc3/124
最简单的方法是什么?
5条答案
按热度按时间niwlg2el1#
在正则表达式的帮助下,你完全可以改变字符串的任何部分。
尝试:
根据输入字符串和替换值,它将发出:
8tntrjer2#
你可以用
indexOf
方法来搜索第二个斜杠。你得做三次。返回的3个位置就是你想要的。既然你说的是位置永远不会改变,那就要考虑怎么做了。另一种方法是用绳子把绳子分开split
方法。然后你必须遍历它,只替换第三个单词。对于每个迭代,您还必须使用StringBuilder
连接String
为了找到回去的路。这两种方法不需要使用regex值。第三种选择是,像有人建议的那样,使用regex。h79rfbju3#
我解决这个问题的方法是在第一个字符串中循环,直到找到3个斜杠,然后在第三个斜杠的索引中设置一个名为“start”的变量。接下来,我从开始循环,直到找到另一个斜杠,并在索引中设置一个名为“end”的变量。之后,我使用string replace方法将start+1到end之间的子字符串替换为新id
o7jaxewo4#
如果您需要替换第3和第4斜杠之间的单词,请尝试此操作
或者如果要替换第三个斜杠之后的所有内容:
tuwxkamq5#
您可以尝试使用这个正则表达式来查找第三个和第四个斜杠之间的字符串,这是您的id,并进行替换。
正则表达式:
(\/.*?\/.*?\/).*?\/
regex101演示