给定一个字符串,如果前两个字符中的一个或两个都是'x',则返回不带这些'x‘字符的字符串,否则返回不变的字符串。怎样才能让我的代码更有效率呢?
withoutX2("xHi")→"Hi“
withoutX2("Hxi")→"Hi“
withoutX2( "Hi“)→”Hi“
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;
}发布于 2015-06-09 12:20:44
您可以使用regex编写代码。
public String withoutX2(String str) {
return str.replaceFirst("^xx?|^(.)x", "$1");
}发布于 2015-06-09 12:18:55
StringBuilder (因为它是可变的)非常适合于此。如果第二个char是x,则将其删除。然后,如果第一个char是x,则将其删除。然后返回StringBuilder的toString。就像这样
StringBuilder sb = new StringBuilder(str);
if (sb.charAt(1) == 'x') {
sb.deleteCharAt(1);
}
if (sb.charAt(0) == 'x') {
sb.deleteCharAt(0);
}
return sb.toString();发布于 2015-06-09 12:23:19
您可以尝试这样做:
public String withoutX2(String str) {
if (str.length() < 2)
return "";
else
return (str = str.substring(0, 2).replace("x", "")+str.substring(2));
}https://stackoverflow.com/questions/30722696
复制相似问题