代码效率:不含X2

时间:2015-06-09 03:51:44

标签: java

给定一个字符串,如果前两个字符中的一个或两个是' 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;
}

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式编写。

public String withoutX2(String str) {
    return str.replaceFirst("^xx?|^(.)x", "$1");
}

答案 1 :(得分:1)

StringBuilder(因为它是可变的)非常适合这种情况。如果第二个charx,则将其删除。然后,如果第一个charx,则将其删除。然后返回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));
}