Android“()”未被视为字符串

时间:2016-06-25 23:42:54

标签: android

我遇到一行代码问题,如下所示:

string = string.replaceAll("sin()", "");

如您所见,在字符串中,所有“sin()”都需要用“”替换。但问题是()不被视为字符串,所以这行代码用“()”替换“sin()”。此外,Android工作室报告()说空组的警告。我尝试使用转义字符解决这个问题,但这不起作用。下面的代码会不会有任何机会?

String compare = "sin()";
string = string.replaceAll(compare, "");

3 个答案:

答案 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) (分开,因为它是一个特殊的字符 所以你需要使用“)” 例如:

\\