2014-12-07 143 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