java中如何java正则替换字符串串,要求不能使用String中的replace方法,最好利用byte数组来做

下次自动登录
现在的位置:
& 综合 & 正文
java中String字符串的替换函数:replace与replaceAll的区别
例如有如下x的字符串
String x = "[kllkklk\\kk\\kllkk]";
要将里面的“kk”替换为++,可以使用两种方法得到相同的结果
replace(CharSequence target, CharSequence replacement)
x.replace("kk", "++")
replaceAll(String regex, String replacement)
x.replaceAll("kk", "++")
可见两个函数没有什么区别,下面将字符串中的“\\”替换为“++”
System.out.println(x.replace("\\", "++"));
System.out.println(x.replaceAll("\\", "++"));
报错 java.util.regex.PatternSyntaxException
可见,当使用转义字符进行替换的时候,是有区别的。replaceAll的参数就是regex,是正则表达式。首先会转义,所以报错。
如果使用System.out.println(x.replaceAll("\\\\", "++"));即可完成。
那么在使用普通的字符串替换时,选用哪一个函数呢?
String x = "[kllkklk\\kk\\kllkk]";
//System.out.println(x.replace("[", "#").replace("]", "#"));
System.out.println(new Date().getTime());
for(int i =0;i&1000000;i++)
tmp=x.replace("kk", "--");
System.out.println(new Date().getTime());
for(int i =0;i&1000000;i++)
tmp=x.replaceAll("kk", "++");
System.out.println(new Date().getTime());
测试结果:
根据测试replaceAll函数要更快一些。看源码发现,replace函数里面仍使用replaceAll函数。
总体原则:当字符串无法确定是否具有转义字符时,而且也不需要转义时,建议使用replace函数
否则,使用replaceAll函数
&&&&推荐文章:
【上篇】【下篇】java 字符串替换函数replace ,如何同时替换多个字符串?
- ITeye问答
&&& String src = "南京市玄武区北京东路徐州市鼓楼区戏马台";
&&& String dest = "";
&&& dest = src.replace("江苏省|玄武区|鼓楼区", "");
&&& System.out.println("[" + dest + "]");
&&& 南京市北京东路徐州市戏马台
&&& 我的目的:将src中包含“江苏省”、“玄武区”、“鼓楼区”的字符串同时替换为空,应该为“南京市北京东路徐州市戏马台”。
&&&& 请问不用for循环应该怎么写?
&&&& 感谢您的回答。
问题补充:谢谢,因为这个函数要执行几十万次,我不想使用for循环。
采纳的答案
public static void main(String[] args) throws Exception {
String src = "南京市玄武区北京东路徐州市鼓楼区戏马台";
src = src.replaceAll("(?:江苏省|玄武区|鼓楼区)", "");
System.out.println(src);
使用正则匹配
三目运算符或者多几个if判断呗
public static void main(String[] args) {
&&& String src = "南京市玄武区北京东路徐州市鼓楼区戏马台";
&&& String dest[] = {"江苏省","玄武区","鼓楼区"};
&&& for (int i = 0; i & dest. i++) {
src = src.replace(dest[i], "");
System.out.println(src);
已解决问题
未解决问题java中如何将字符串转换成字节数组
本回答由提问者推荐拒绝访问 | www.1398.org | 百度云加速
请打开cookies.
此网站 (www.1398.org) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(b43e9-ua98).
重新安装浏览器,或使用别的浏览器

我要回帖

更多关于 java 字符串替换 的文章

 

随机推荐