2013-04-30 252 views
0

我是一名Java初學者,希望能夠幫助編寫代碼,使用一種主要方法在給定的字符串中逐步複製每個字符步驟STEPWISE重複字符串中的字符

因此,例如,

輸入字符串:你好(但代碼應爲任意字符串工作)

輸出:

HH HHee HHeell HHeellll HHeelllloo

所以在每個字符被複制並添加到任何以前的複製之後,程序終止。這是否需要多個循環?

到目前爲止,我有以下代碼:

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); 
} 

} 

我試圖巢循環,因爲這就是我認爲這是要解決的,但我沒有得到望其項背。我將不勝感激任何幫助或方向......

+0

看看變量,你遞增和'for'循環變量。 – Sujay 2013-05-01 00:20:15

回答

1

- 你正在重新使用變量我。一定要檢查每一個步驟 它的價值 - 和檢查使用子()方法

+0

所以我應該使用第二個int變量?我的代碼是這樣的: for(int i = 0; i 2013-05-01 00:32:09

0
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); 
     } 
    } 
+0

謝謝,但是有什麼辦法只用主要方法而不用第二個方法來做到這一點?在此期間我會盡力將其分解 – 2013-05-01 00:40:41

+0

謝謝,但是有什麼辦法可以只用主要方法而不是第二種方法來做到這一點?我仍然試圖將其分開 – 2013-05-01 00:50:28

+0

我已將它與原始答案一起添加 – faisal 2013-05-01 00:57:35