2016-05-31 7 views
0

私のプログラムは数字のリスト(0-113)を繰り返し処理し、その行を1行ずつ印刷することになっています。数字が奇数の場合は、数字が5で割り切れる場合は数字の隣に追加する必要があります。だから、私は4つのboolean型の方法が行われており、彼らはこのようになります。正しい順序でArrayListに要素を追加するのに問題があります

public static boolean isDivisibleBy5(int n){   
    if (n%5 ==0){   
     return true; 
    }  
    return false ;   
} 

次の私は、私は割り当ての必要条件に従って使用するために必要な午前の方法を持っており、それは以下の通りである。だから、

public static ArrayList<String>iterate() 

この方法の定義は私が問題を抱えているところです。今、私が持っているものは以下です:

public static ArrayList<String>iterate(){ 
    ArrayList<String> list = new ArrayList<String>(); 
    for(int i=0;i<114;i++){ 

    if (isOdd(i)){ 
    list.add(i+" Is odd"); 
    } 
    if(isDivisibleBy5(i)){ 
     list.add(i+" hi five"); 
    } 
    if(isDivisbleBy7(i)){ 
     list.add(i+" wow"); 
    } 
    if (isPrime(i)){ 
     list.add(i+" prime"); 
    } 
    } 
    for(String elem:list) 
    System.out.println(elem); 
    return list; 

} 

しかし残念ながら、私の出力は次のようになります。私はこのように見えるためにそれを必要とする

0 hi five 
1 Is odd 
1 prime 
3 Is odd 
3 wow 
3 prime 
5 Is odd 
5 hi five 
5 prime 
7 Is odd 
7 prime 
9 Is odd 
10 hi five 
10 wow 
11 Is odd 

0, hi five 
1, Is Odd, prime 
2 
3, Is odd, wow, prime 
4 
5, Is Odd, hi five, prime 

など

私の質問は基本的にどのようにすべての条件(真の場合)を取得して、それを対応する行と同じ行に追加するのですか2行目と4行目と6行目のように、行にも条件を満たさない数値があります。 私はこの質問にしばらくお待ちしており、重要なJavaそれについて私が思っていないことはここに必要です。文字列ビルダーかもしれない?よく分かりません。どんな助けもありがとうございます。たとえあなたが私を見つけてより多くのことを学ぶコンセプトに向けることができたとしても。

おかげ

EDIT: 私は最初の文字列を構築し、それに追加する方法については回答の多くを見ています。私はこれが私のことを考えていなかったというコンセプトだと思うので、私はそれを読んで練習します。迅速な対応に感謝します。私がそれを働かせたら、私はここに戻り、助けてくれた人に投票します。

+0

リスト? – Turing85

+0

Stringを連結して配列に追加することができます。 'String conditions =" "; list.add(i + "conditions);' (isPrime)条件+ = "が素数の場合" if(isOdd())条件+ = "は奇数です"; –

+0

保存しているものを考慮してください今では、個々のステートメントを保存しています。グループ化されたステートメントを保存したいので、各番号の文字列、配列、または配列を作成すると有益になり、元の配列に格納してください。 – Compass

答えて

2

あなたが最初の文字列を構成して、一度だけ、それを追加する必要があります。

最初の全体 `STRING`を構築し、その後にそれを追加することについてどのように
public static ArrayList<String>iterate(){ 
    ArrayList<String> list = new ArrayList<String>(); 
    for(int i=0;i<114;i++){ 
     String toAdd = String.valueOf(i);  

     if (isOdd(i)){ 
      toAdd += ", Is odd"; 
     } 
     if(isDivisibleBy5(i)){ 
      toAdd += ", hi five"; 
     } 
     if(isDivisbleBy7(i)){ 
      toAdd += ", wow"; 
     } 
     if (isPrime(i)){ 
      toAdd += ", prime"; 
     } 

     list.add(toAdd); 
    } 

    for(String elem:list) 
     System.out.println(elem); 

    return list;  
} 
+0

ありがとうございます。 文字列。valueOf(i);私が知らなかったもので、これに関して何かしようとしていたことはすべてうまくいかなかった。 – user3516525

0

私はあなたがそれを呼び出すたびにlist.add()とその行を追加しています。すべてのif文でlist.add()を使用するのではなく、すべてをスティングに追加してlist.add(string)を使用してリストに追加するのはなぜですか?

このような何か:

public static ArrayList<String>iterate(){ 
    String line =""; //creates line 
    ArrayList<String> list = new ArrayList<String>(); 
    for(int i=0;i<114;i++){ 
    line += i; 
    if (isOdd(i)){ 
    line +=", Is odd"; 
    } 
    if(isDivisibleBy5(i)){ 
    line += ", high five" 
    } 
    ... 
    list.add(line); 
関連する問題