给定一个字符串,如果前两个字符中的一个或两个是' x',则返回没有字符串的字符串' x' chars,否则返回字符串不变。如何使我的代码更有效率?
withoutX2(" xHi")→"嗨"
withoutX2(" Hxi")→"嗨"
没有X2("嗨")→"嗨"
public String withoutX2(String str) {
if (str.length() < 2)
return "";
else if (str.charAt(0) == 'x' && str.charAt(1) == 'x')
return str.substring(2);
else if (str.charAt(0) == 'x')
return str.substring(1);
else if (str.charAt(1) == 'x')
return str.substring(0,1) + str.substring(2);
else
return str;
}
答案 0 :(得分:2)
您可以使用正则表达式编写。
public String withoutX2(String str) {
return str.replaceFirst("^xx?|^(.)x", "$1");
}
答案 1 :(得分:1)
StringBuilder
(因为它是可变的)非常适合这种情况。如果第二个char
是x
,则将其删除。然后,如果第一个char
是x
,则将其删除。然后返回toString
的{{1}}。像
StringBuilder
答案 2 :(得分:1)
你可以试试这个:
public String withoutX2(String str) {
if (str.length() < 2)
return "";
else
return (str = str.substring(0, 2).replace("x", "")+str.substring(2));
}