我正在尝试将一个+
字符替换为hyphen
我的字符串中的一个字符。
String str = "word+word";
str.replaceAll('+ ', '-');
我尝试使用替换,但它抛出了一个exception
。有没有其他方法可以做到这一点。
我正在尝试将一个+
字符替换为hyphen
我的字符串中的一个字符。
String str = "word+word";
str.replaceAll('+ ', '-');
我尝试使用替换,但它抛出了一个exception
。有没有其他方法可以做到这一点。
只需使用replace
:
str = str.replace('+', '-');
这个不适用于正则表达式,但可以按原样使用字符。
此外,正如您所见,您必须再次重新评估str
变量的值,因为String
在 Java 中是不可变的。在这种情况下,方法replace
不会更改当前String
( str
),而是创建一个替换+
为“-”的新方法。
利用
str = str.replaceAll("\\+", "-");
您的代码中有一些错误:
+
char 必须转义,因为第一个参数是正则表达式(并且它\
本身必须在 java 字符串文字中转义)该replaceAll
函数将正则表达式作为其第一个参数。碰巧这+
是正则表达式语言中的一个特殊字符。尝试替换+
为\\+
. 这将转义加号,从而使代码将其视为普通字符。
此外,该replaceAll
方法会产生一个字符串,因此这不起作用。尝试做:
String str = "word+word";
str = str.replaceAll("\\+ ", "-");
`replaceAll´ 用于正则表达式,字符串是不可变的。利用:
str = str.replace("+", "-");
反而...
在 replaceAll 中使用 "" 而不是 ''。
String java.lang.String.replaceAll(字符串正则表达式,字符串替换)
如果您不确定需要使用的转义序列,
你可以简单地做到这一点。
str = str.replaceAll(Pattern.quote("+"), "-");
这将自动转义正则表达式预定义的标记以以文字方式匹配