字符串替换功能

时间:2008-11-18 09:20:30

标签: java string

我有以下字符串

String str = "replace :) :) with some other string";

我想用其他字符串

替换:)的第一次出现

我使用了str.replaceFirst(":)","hi");

它提供以下异常

  

“无与伦比的结束”)'“

我尝试使用replace函数,但它取代了:)的所有出现。

3 个答案:

答案 0 :(得分:10)

replaceFirst方法将正则表达式作为其第一个参数。由于)是正则表达式中的特殊字符,因此必须引用它。尝试:

str.replaceFirst(":\\)", "hi");

需要双反斜杠,因为双引号字符串也使用反斜杠作为引号字符。

答案 1 :(得分:5)

replaceFirst()的第一个参数是一个正则表达式,而不仅仅是一个字符序列。在正则表达式中,parantheses具有特殊意义。你应该像这样逃避这个副词:

str = str.replaceFirst(":\\)", "hi");

答案 2 :(得分:1)

Apache Jakarta Commons通常是解决这类问题的方法。在这种情况下,我会看一下commons-lang,特别是StringUtils.replaceOnce()