我想知道是否这样;
public String seeColor(String str)
{
int l = str.length();
if(l >= 3 && str.substring(0, 3).equals("red")) return "red";
if(l >= 4 && str.substring(0, 4).equals("blue")) return "blue";
else return "";
}
然后编译得更快;
public String seeColor(String str)
{
int l = str.length();
if(l >= 3 && str.substring(0, 4).equals("red")) return str.substring(0, 4);
if(l >= 4 && str.substring(0, 5).equals("blue")) return str.substring(0, 5);
else return "";
}
或者两种方式都很糟糕,而另一种更有效的方法是我不知道的?
答案 0 :(得分:3)
您可以使用以下代码获得更好的效果:
public String seeColor(String str)
{
if(str.startsWith("red")) return "red";
else if(str.startsWith("blue")) return "blue";
else return "";
}
答案 1 :(得分:1)
每次调用substring
都可以生成子字符串,因此第一选择更有效。但是,您当前的代码并非null
安全(因此我会测试null
),我希望String.startsWith(String)
喜欢
public String seeColor(String str)
{
if(str == null) return "";
else if(str.startsWith("red")) return "red";
else if(str.startsWith("blue")) return "blue";
else return "";
}