【问题标题】:STEPWISE duplication of the characters in a string字符串中字符的 STEPWISE 重复
【发布时间】:2023-03-15 16:56:01
【问题描述】:

我是一名 Java 初学者,希望在编写代码时获得帮助,该代码仅使用 main 方法复制给定字符串中的每个字符逐步

例如,

输入字符串:你好(但代码应该适用于任何字符串)

输出:

HH 嘻嘻 赫尔 地狱 嘿嘿嘿

因此,在每个字符被复制并添加到任何先前的副本之后,程序就会终止。这需要多个循环吗?

到目前为止,我有以下代码:

for (int i = 0; i < length ; i++) {
    char c = s.charAt(i);
    System.out.println(c);

    int j = 0;
    while (j < length) {
    j = j+1;
    i++;
    s = new StringBuffer(s).insert(i, c).toString();

    System.out.println(s);
}

}

我正在尝试嵌套循环,因为我认为这是要解决的问题,但我没有接近。我将不胜感激任何帮助或指导....

【问题讨论】:

  • 查看您正在递增的变量和for 循环变量。

标签: java string recursion for-loop


【解决方案1】:

-您正在重用变量 i。一定要在每一步检查它的值 - 并检查 substring() 方法的使用

【讨论】:

  • 那么我应该使用第二个 int 变量吗?我的代码现在是这样的: for (int i = 0; i
【解决方案2】:
public class StringHelper {
    public static String duplicate(String s, String prefix){
        if(s.equals("")) return "";
        char c=s.charAt(0);
        String ret=prefix+c+c;
        return ret+" "+duplicate(s.substring(1),ret);
    }
    public static void main(String []args){
        System.out.println(duplicate("Hello",""));
    }
}

直接:

public static void main(String []args){
        String s="Hello"; //if you need to keep the original array, save it in temp and work with temp
        String prefix="";
        while(!s.equals("")){
            char c=s.charAt(0);
            prefix+=""+c+c;
            System.out.print(prefix+" ");
            s=s.substring(1);
        }
    }

【讨论】:

  • 谢谢,但是有没有办法只用一个主要方法而不是第二个方法来做到这一点?在此期间我会尝试分解它
  • 谢谢,但是有没有办法只用一个主要方法而不是第二个方法来做到这一点?我还在尝试分开它
  • 我已经添加了原始答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 2010-09-12
  • 2017-02-15
  • 2011-10-10
相关资源
最近更新 更多