Java字符串替换问题
我有一个Url想用正则表达式替换内容Stringurl="www.asd.com/?userid={userid}&password={password}";String...
我有一个Url 想用正则表达式替换内容
String url = "www.asd.com/?userid={userid}&password={password}";
String[] values = {"123","321"};
替换后
www.asd.com/?userid=123&password=321;
最好提供一个共同方法 能够按数组顺序的 替换掉"{***}" 展开
String url = "www.asd.com/?userid={userid}&password={password}";
String[] values = {"123","321"};
替换后
www.asd.com/?userid=123&password=321;
最好提供一个共同方法 能够按数组顺序的 替换掉"{***}" 展开
4个回答
展开全部
@Test
public void TestReplace(){
String url = "www.asd.com/?userid={userid}&password={password}";
String[] values = {"123","321"};
String regex = "\\{[^\\{\\}]*\\}";
Pattern pt = Pattern.compile(regex);
Matcher match = pt.matcher(url);
int i = 0;
while(match.find()) {
String paramValue = match.group();
url = url.replaceAll(paramValue.replaceAll("\\{", "\\\\{").replaceAll("\\}", "\\\\}"), values[i]);
i++;
}
System.out.println("url ===="+url);
}
public void TestReplace(){
String url = "www.asd.com/?userid={userid}&password={password}";
String[] values = {"123","321"};
String regex = "\\{[^\\{\\}]*\\}";
Pattern pt = Pattern.compile(regex);
Matcher match = pt.matcher(url);
int i = 0;
while(match.find()) {
String paramValue = match.group();
url = url.replaceAll(paramValue.replaceAll("\\{", "\\\\{").replaceAll("\\}", "\\\\}"), values[i]);
i++;
}
System.out.println("url ===="+url);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参数较少时直接替换
String[] values = {"123","321"};
String username=values[0];
String password=values[1];
String url = "www.asd.com/?userid="+username+"&password="+password;
参数较多时,你想写个方法也可以,可变参数函数和正则表达式配合
String[] values = {"123","321"};
String username=values[0];
String password=values[1];
String url = "www.asd.com/?userid="+username+"&password="+password;
参数较多时,你想写个方法也可以,可变参数函数和正则表达式配合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用String.format似乎更好。
String[] values = {"123","321"};
String url = String.format("www.asd.com/?userid={%s}&password={%s}",values[0],values[1]);
System.out.println(url);
String[] values = {"123","321"};
String url = String.format("www.asd.com/?userid={%s}&password={%s}",values[0],values[1]);
System.out.println(url);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
replace方法就可以吧
追问
想学习下正则
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询