我遇到一行代码问题,如下所示:
string = string.replaceAll("sin()", "");
如您所见,在字符串中,所有“sin()”都需要用“”替换。但问题是()不被视为字符串,所以这行代码用“()”替换“sin()”。此外,Android工作室报告()说空组的警告。我尝试使用转义字符解决这个问题,但这不起作用。下面的代码会不会有任何机会?
String compare = "sin()";
string = string.replaceAll(compare, "");
答案 0 :(得分:4)
replaceAll
的第一个参数是正则表达式,其中(
和)
是特殊字符。你需要使用
string = string.replaceAll("sin\\(\\)", "");
请注意\\
- \
的使用实际上是Java字符串中的特殊字符,因此您必须先使用\
转义\\
。
答案 1 :(得分:1)
String z = "sin() is equal sin()";
Log.d("TEST",z);
z = z.replaceAll("sin\\(\\)", "");
Log.d("TEST",z);
提供以下输出:
sin() is equal sin()
is equal
答案 2 :(得分:0)
您需要将public NdefMessage createNdefMessage(NfcEvent event)
和(
分开,因为它是一个特殊的字符
所以你需要使用“)
”
例如:
\\