LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1196|回复: 4

怎么替代含有特殊字符(串)的字符串?

[复制链接]
发表于 2004-9-18 01:30:27 | 显示全部楼层 |阅读模式
比如:
[PHP]
public class test {
  public test() {
  }

  public static void main(String[] args) {
    test test1 = new test();
    String str = "result=test1+test2";
    System.out.println(str.replaceFirst("test1\\+test2","ok"));
  }
}
[/PHP]
输出:result=ok
这个没错,只是假如str是个变量,是从别的地方获得的(比如request.getParameter("str")))
那么假如我要把诸如test1+test2这类串替换成别的字符串怎么做啊(加号是肯定有的)
 楼主| 发表于 2004-9-18 01:35:28 | 显示全部楼层

晕,怎么会这样啊。。。

str.replaceFirst("test1\+test2","ok")
这一句是两个\\号的,显示不出来。。。

我是想到一个很笨的方法就是先for(int i=0;i<"test1+test2".length();i++)一个个字符搜索,找到 + 号然后就在前面补上两个 \ ,然后再替换,可是这样效率好像很低

好像和那个正则有关。。。高手们能不能指点一下啊。。。
多谢啦!
发表于 2004-9-18 01:45:25 | 显示全部楼层
不知道你想说什么哦,,老牛。。嘿嘿。。。
干嘛不弄成

str.replaceFirst(strA+"\+"+strB,"ok");
 楼主| 发表于 2004-9-18 02:02:22 | 显示全部楼层
那个"strA+strB"本来就是合在一起的

我的意思就是我无法在+号前加上两个 \ 符号

不加又不行,但是我又不知道怎么加上去,除了现在想到的for循环来找到+再在前面补上去之外没想到别的办法,可这种方法效率很低

---------------------------------

多谢消魂DD,就只能再来一次replaceAll吧,呵呵,结贴。。。
发表于 2004-9-18 02:09:16 | 显示全部楼层
活活,,,直接replaceAll。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表