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

Вы указали требования и код, отлично, но вы не опубликовали согласованный и конкретный вопрос. Итак, в этом порядке, каков ваш вопрос? –

ответ

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

Большое спасибо Эллиот. Я очень ценю ваш быстрый ответ. Я обнаружил, что также работает: for (int j = args.length; -j> = 0;) – Abraham

+0

@Abraham Да, это работает; но вы должны [Написать тупой код] (http://www.oracle.com/technetwork/articles/javase/devinsight-1-139780.html). Какое преимущество имеет использование '--j> = 0'? Кроме того, если вы предпочитаете этот стиль, почему бы не использовать 'while (--j> = 0)'? –

+0

Вы правы. Цикл while более аккуратный, чем мой. Спасибо за вашу помощь. – Abraham