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