【发布时间】:2016-01-22 18:50:00
【问题描述】:
我正在尝试 CodingBat 中的练习。
Java > String-1 > seeColor: 给定一个字符串,如果字符串以“red”或“blue”开头,则返回该颜色字符串,否则返回空字符串。
我的运行代码是:
public String seeColor(String str) {
int len = str.length();
if (len >= 3 && str.substring(0, 3).equals("red")) {
return str.substring(0, 3);
} else if (len >= 4 && str.substring(0, 4).equals("blue")) {
return str.substring(0, 4);
}
return "";
}
但我在网上找到了另一个答案:
public String seeColor(String str) {
int len = str.length();
if(len >= 4) {
if(str.substring(0, 4).equals("blue"))
return "blue";
else if(str.substring(0, 3).equals("red"))
return "red";
else
return "";
}
else if(len == 3) {
if(str.substring(0, 3).equals("red"))
return "red";
else
return "";
}
else
return "";
}
我的解决方案中重复的代码更少(或者这就是我的想法)。 但另一种解决方案看起来更有效。它从大字符串开始,只评估最后长度为 3 个字符的字符串。可能最后一个解决方案在未来更容易进行更改。 我想阅读某人的意见。谢谢。
已编辑:我表示歉意,我一开始没有按照@MikeDunlavey 的建议正确格式化我的代码。
【问题讨论】:
标签: java string performance duplicates