2017-11-19 8 views
-1

私はリストを繰り返して値を取得しています。Java ArrayListの位置

Kolkata, Mumbai, Chennai, Hyderabad, Delhi. 

以下のように印刷する必要があります。すべての偶数回の反復の後、値は次の行に移動する必要があります。ここで

Kolkata,Mumbai, 
Chennai,Hyderabad, 
Delhi 
+0

コルカタ。ムンバイ新しいラインチェンナイハイデラバードで、再び新しいラインデリー –

+3

へようこそStackoverflowへ[How to Ask](https://stackoverflow.com/help/how-to-ask)を読んでください。 [MCVEの作成方法](https://stackoverflow.com/help/mcve)に特に注意してください。良い質問を投稿するために、より多くの努力が必要です。読みやすく、理解しやすく、トピック上にあるものです(https://stackoverflow.com/help/on-topic) - その可能性は高いです関連する人々を引きつけ、より速く助けを得るでしょう。がんばろう! – alfasin

+0

ようこそスタックオーバーフロー。あなたもコードを投稿するべきです。 –

答えて

0
import java.util.*; 
import java.lang.*; 
import java.io.*; 

class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     ArrayList<String> list=new ArrayList<>(); 
     list.add("chennai"); 
     list.add("kolkata"); 
     list.add("hyderabad"); 
     list.add("delhi"); 
     list.add("mumbai"); 




     for(int i=0;i<list.size();i++) 
     { 
      System.out.print(list.get(i)+","); 
      if(i%2==1) 
      { 
       System.out.println(); 
      } 
     } 

    } 
} 

あなたが何を望むかの作業のデモです。目的を達成するためにカウンタ変数を使用するだけです。

+0

余分な変数 'k'を初期化する必要はありませんでした。' i'だけで行うことができます。単にif(i%2 == 2)を置き換え、 'k = 0'という行を削除してください。 –

+0

(i%2 == 1)ではなく、(i%2 == 2)という目的を達成します。 – anupam691997

+0

であり、ループの外側で変数 'i 'を初期化する必要はありません。それはまったく必要ではなかったライフサイクルを増加させるだけです! –

0

それは必要ありませんが、私は印刷する前に、それを文字列全体を収集するためのStringBuilderを使用して好む:

java.util.List<String> list = prepareList(); // omited the list preparation code. 

    int currentStringIndex = 0; 
    int totalStringCount = list.size(); 

    StringBuilder sb = new StringBuilder(); 

    for (String eachString : list) { 
     sb.append(eachString); 

     // If this is not the last string. 
     if (currentStringIndex != totalStringCount - 1) { 
      // Append comma. 
      sb.append(", "); 

      // Add a new line if the next string is even indexed (i.e. current string is odd indexed) 
      if (currentStringIndex % 2 == 1) { 
       sb.append("\n"); 
      } 
     } 

     currentStringIndex++; 
    } 

    System.out.println(sb.toString()); 
0

まず、あなたがコーディングにいくつかの努力を入れて試してみて、私達にあなたの結果を示さなければなりません

List<String> cityList = new ArrayList<>(Arrays.asList("Kolkata", "Mumbai", "Chennai", "Hyderabad", "Delhi")); 
for (int i = 0; i < cityList.size(); i++) { 
    if ((i & 1) == 1 && i != cityList.size() - 1) { // to check number if even or odd 
     System.out.println(cityList.get(i) + ", "); 
    } else if (i == cityList.size() - 1) { 
     System.out.print(cityList.get(i)); 
    } else { 
     System.out.print(cityList.get(i) + ", "); 
    } 
} 

サンプル出力:...私たちはあなたを助けることができる

をしようとすると、次のコードを考えてみましょう

Kolkata, Mumbai, 
Chennai, Hyderabad, 
Delhi 

更新

あなたは

List<String> cityList = new ArrayList<>(
     Arrays.asList("Kolkata", "Mumbai", "Chennai", "Hyderabad", "Delhi", "zzzzzzz", "eeeeee", "wwwwwwwwww", "aaaaaaaa", "sssssssss")); 
int n = 3; // Number of iteration you need 
for (int i = 0, j = n -1; i < cityList.size(); i++) { 
    if (i == j && i != cityList.size() - 1) { 
     System.out.println(cityList.get(i) + ", "); 
     j += n; 
    } else if (i == cityList.size() - 1) { 
     System.out.print(cityList.get(i)); 
    } else { 
     System.out.print(cityList.get(i) + ", "); 
    } 
} 

以下の出力例として、エンドラインまで反復の数を追加する必要がある場合:

Kolkata, Mumbai, Chennai, 
Hyderabad, Delhi, zzzzzzz, 
eeeeee, wwwwwwwwww, aaaaaaaa, 
sssssssss 
関連する問題