我正在尝试将+
字符替换为我的字符串中的hyphen
。
String str = "word+word";
str.replaceAll('+ ', '-');
我尝试使用替换,但它抛出exception
。是否有其他方法可以执行此操作。
答案 0 :(得分:4)
使用
str = str.replaceAll("\\+", "-");
代码中的一些错误:
+
char,因为第一个参数是正则表达式(并且\
本身必须在java字符串文字中转义)答案 1 :(得分:4)
只需使用replace
:
str = str.replace('+', '-');
这个不适用于正则表达式,但可以按原样使用字符。
另外如您所见,您必须再次向str
变量重新赋值,因为Java中的String
是不可变的。在这种情况下,方法replace
不会更改当前String
(str
),但会创建一个将+
替换为' - '的新文件。
答案 2 :(得分:1)
replaceAll
函数将正则表达式作为其第一个参数。碰巧+
是正则表达式语言中的特殊字符。尝试将+
替换为\\+
。这将逃脱加号,从而使代码像普通字符一样对待它。
此外,replaceAll
方法会产生一个字符串,因此无效。尝试做:
String str = "word+word";
str = str.replaceAll("\\+ ", "-");
答案 3 :(得分:1)
`replaceAll'用于正则表达式,字符串是不可变的。使用:
str = str.replace("+", "-");
,而不是...
答案 4 :(得分:0)
在replaceAll中使用“”而不是''。
String java.lang.String.replaceAll(String regex,String replacement)
答案 5 :(得分:0)
如果您不确定需要使用的转义序列,
你可以这样做。
str = str.replaceAll(Pattern.quote("+"), "-");
这将自动转义正则表达式预定义标记以文字方式匹配