2014-12-07 86 views
-1

我需要編寫一個簡單的Java程序,以便遍歷給定的字符串(從args []給出),並在遇到某個字符(例如'^')時接收println:將參數附加到字符串

public class JavaApplication15 { 

    public static void main(String[] args) { 
     StringBuffer copyFromMe = null; 
     for (int j = args.length; --j<=0;) { 
      copyFromMe = new StringBuffer(); 
      copyFromMe.append(args[j]); 
     } 

     StringBuffer copyToMe = new StringBuffer(); 

     int i = 0; 
     char c = copyFromMe.charAt(i); 
     while (c != 'g') { 
      copyToMe.append(c); 
      c = copyFromMe.charAt(++i); 
     } 
     System.out.println(copyToMe); 
    } 

    private static String String(String[] args) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 
} 
+4

您已經發布了需求和代碼,很棒,但是您沒有發佈一個連貫一致的具體問題。那麼,按照這個順序,你的問題是什麼? – 2014-12-07 21:58:03

回答

2

您正在爲循環的每次迭代創建new StringBuffer。您應該使用StringBuilder。你需要從args.length - 1開始。最後>= 0 like,

StringBuilder copyFromMe = new StringBuilder(); 
for (int j = args.length - 1; j>=0; j--) { 
    // copyFromMe = new StringBuffer(); 
    copyFromMe.append(args[j]); 
} 
+0

非常感謝Elliott。我非常感謝您的及時迴應。我發現,以下也是工作:for(int j = args.length; - j> = 0;) – Abraham 2014-12-08 07:10:20

+0

@Abraham是的,這工作;但是你應該[編寫代碼](http://www.oracle.com/technetwork/articles/javase/devinsight-1-139780.html)。使用'--j> = 0'有什麼好處?另外,如果你喜歡這種風格,爲什麼不使用'while(--j> = 0)'? – 2014-12-08 07:23:28

+0

你說得對。 while循環比我的整潔。謝謝你的幫助。 – Abraham 2014-12-08 07:52:32