Java中如何将字符串里的[ ]替换为值X?
解决Java字符串替换
[ ]为X的问题 问题场景
你有如下Java字符串:
String value = "You are my star [ ] dear";
需要将其中的[ ](方括号加中间空格)替换为X,但之前尝试的replaceAll写法均未生效。
错误写法分析
你尝试的几种写法都存在问题:
ReplaceAll("[]","X"):正则表达式中[]是字符类的语法,这种写法本身不合法,会抛出正则语法异常,且无法匹配目标子串。ReplaceAll("//[//]","X"):Java中转义正则特殊字符需要用双反斜杠\\,而非//,且该写法仅匹配单个[或],不是你要的[ ]完整子串。ReplaceAll("/[/]","X"):同样转义方式错误,且仅匹配单个[,不符合需求。
正确解决方案
方案1:使用replace方法(推荐)
replace方法是字面量替换,不需要考虑正则特殊字符,直接匹配目标子串即可:
String value = "You are my star [ ] dear"; String result = value.replace("[ ]", "X"); // 结果:"You are my star X dear"
方案2:使用replaceAll方法(正则方式)
如果一定要用replaceAll,需要将正则中的特殊字符[和]转义(用\\),同时匹配中间的空格:
String value = "You are my star [ ] dear"; String result = value.replaceAll("\\[ \\]", "X"); // 结果:"You are my star X dear"
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

