首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用递归方法打印每隔一个字符删除的字符串。

使用递归方法打印每隔一个字符删除的字符串。
EN

Stack Overflow用户
提问于 2020-02-06 15:23:43
回答 1查看 808关注 0票数 2

我希望使用递归方法从字符串中删除每秒钟的字符。

代码语言:javascript
复制
    public static void main(String[] args) {
        System.out.println(everySecond("wonderful"));

    }
    public static String everySecond(String s) {

        if (s.length() % 2 != 0 ) {
            System.out.print(s.substring(0,1));
        }
        if (s.length() <= 1) {
            return s;
        }
        else {
                String simpler = everySecond(s.substring(1))+ s.charAt(0);
                return "";
        }
    }
}

目前,这个程序可以满足我的需要。但是,我想在子递归调用String simpler = everySecond(s.substring(1))+ s.charAt(0); return "";中包含所有内容,并删除下面的代码。

代码语言:javascript
复制
if (s.length() % 2 != 0 ) {
            System.out.print(s.substring(0,1));
        }

我对Java相当陌生,所以如果答案是显而易见的,我很抱歉。我想我忽略了一些非常基本的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-06 15:32:42

如果字符串的剩余长度小于2,那么我们就不需要再找到任何要跳过的字符了。否则,我们需要初始字符,然后是第二个字符(跳过的一个)之后的字符串的其余部分,因此我这样做:

代码语言:javascript
复制
  public static String removeEverySecondChar(String str) {
    if(str.length() < 2) {
      return str;
    }
    return str.substring(0,1) + removeEverySecondChar(str.substring(2));
  }

输入:Wonderful

输出:Wnefl

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60098365

复制
相关文章

相似问题

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