(JAVA)如果替换以前的if语句

时间:2017-01-06 19:43:19

标签: java android android-studio if-statement

快速提问。我有以下代码:

//Cookie
if (mType.getText().toString().toLowerCase().contains("Cookie")) {
    mResults.setText(mType.getText().toString().replaceAll("(?i)\\bCookie\\b", "Dough"));
}

//Cola
if (mType.getText().toString().toLowerCase().contains("Cola")) {
    mResults.setText(mType.getText().toString().replaceAll("(?i)\\bCola\\b", "Sprite"));
}

我有一个脚本,允许我从用户输入中替换某些单词。当用户输入单词“Cookie”时,脚本将该单词替换为“Dough”。但是,如果用户键入“Cookie Cola”,则脚本只会将“Cola”替换为“Sprite”,并丢弃之前替换单词“Cookie”的if语句。

那么,我如何创建一个脚本,允许我从输入中替换多个单词而不丢弃之前的if语句?

3 个答案:

答案 0 :(得分:1)

您只需将其存储到变量中即可。

喜欢:

String value = (mType.getText().toString().toLowerCase();

if(value.contains("soda")) { value = value.replaceAll("soda","cola"); }
if(...) {...}

但是。从技术上讲,你做的工作超出了必要的范围。你可以链接你的替代品。

String value = (mType.getText().toString().toLowerCase();
value = value.replaceAll("soda","cola").replaceAll("...","...")... //Etc.

答案 1 :(得分:0)

要在两个ifs中回答您的问题,您需要在mType.getText()上调用replace。但是你并没有改变这个价值。所以你要对原始字符串进行第二次替换。以下是代码的外观:

String text = mType.getText().toString();
text = text.replaceAll("(?i)\\bCookie\\b", "Dough");
text = text.replaceAll("(?i)\\bCola\\b", "Sprite"));
mResults.setText(text);

答案 2 :(得分:0)

将多个String.replaceAll()语句链接在一起可以获得相同的结果,而无需if语句。例如

String result = mType.getText.toString().toLowerCase();
result = result.replaceAll("cola", "sprite")
        .replaceAll("cookie", "dough"); // And so on...
mResults.setText(result);