首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码效率: withoutX2

代码效率: withoutX2
EN

Stack Overflow用户
提问于 2015-06-09 11:51:44
回答 3查看 661关注 0票数 2

给定一个字符串,如果前两个字符中的一个或两个都是'x',则返回不带这些'x‘字符的字符串,否则返回不变的字符串。怎样才能让我的代码更有效率呢?

withoutX2("xHi")→"Hi“

withoutX2("Hxi")→"Hi“

withoutX2( "Hi“)→”Hi“

代码语言:javascript
复制
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;
}
EN

回答 3

Stack Overflow用户

发布于 2015-06-09 12:20:44

您可以使用regex编写代码。

代码语言:javascript
复制
public String withoutX2(String str) {
    return str.replaceFirst("^xx?|^(.)x", "$1");
}
票数 3
EN

Stack Overflow用户

发布于 2015-06-09 12:18:55

StringBuilder (因为它是可变的)非常适合于此。如果第二个charx,则将其删除。然后,如果第一个charx,则将其删除。然后返回StringBuildertoString。就像这样

代码语言:javascript
复制
StringBuilder sb = new StringBuilder(str);
if (sb.charAt(1) == 'x') {
    sb.deleteCharAt(1);
}
if (sb.charAt(0) == 'x') {
    sb.deleteCharAt(0);
}
return sb.toString();
票数 1
EN

Stack Overflow用户

发布于 2015-06-09 12:23:19

您可以尝试这样做:

代码语言:javascript
复制
public String withoutX2(String str) {

    if (str.length() < 2)
        return "";
    else
        return (str = str.substring(0, 2).replace("x", "")+str.substring(2));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30722696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档