我有一个像
这样的字符串Want to Start (A) Programming and (B) Designing
我想将(A)
替换为\n(A)
,将(B)
替换为\n(B)
所以,预期的结果就像
Want to Start
(A) Programming and
(B) Designing
我试过
stringcontent=stringcontent.replaceAll("(A)", "\n(A)");
它不起作用。在谷歌搜索后,我意识到它是因为字符串中的特殊字符(
和)
。
任何可能的方法来解决这个问题?
答案 0 :(得分:4)
这个正则表达式
String a = "Want to Start (A) Programming and (B) Designing";
String b = a.replaceAll("\\(", "\n\\(");
System.out.println(b);
结果
Want to Start
(A) Programming and
(B) Designing
只需使用\\
转义括号,就可以了。
编辑: 更具体,如下所述
a.replaceAll("(\\([AB]\\))", "\n$1");
仅匹配(A)和(B)或
a.replaceAll("(\\(\\w\\))", "\n$1");
匹配任何(*)(字符)
答案 1 :(得分:0)
你必须逃避特殊字符:
stringcontent=stringcontent.replaceAll("\\(A\\)", "\n(A)");
答案 2 :(得分:0)
作为第一个参数方法,replaceAll需要正则表达式,我强烈建议你阅读它们。
stringcontent.replaceAll("\\((?=\\w\\))", "\n(");
修改强>
建议的答案使用硬编码的字母进行检查和替换(或假设大括号中没有文字)。我的回答使用\ w通配符与字母匹配以及高级检查,确保字母和右括号跟随您的左大括号。 什么答案取决于你。