2015-10-06 83 views
0

我正在循環將數據寫入字符串數組。但我想要的是,我創建了另一個循環,我將遍歷values的數據,最多爲amount,但我想就如何這樣做提供一些指導。循環創建自定義字符串

String[] s = new String[20]; 
String[] values = { "A", "B", "C", "D" }; 
final int amount = 2; 

for (int i = 0; i < s.length; i++) { 
    s[i] = String.format("%s%04d", values[0], i); //TODO create another loop? 
} 
System.out.println(Arrays.toString(s)); 

的首選輸出應該是:

A0000, A0001, B0002, B0003, C0004, ... 

實際的輸出是:

A0000, A0001, A0002, A0003, A0004, ... 
+0

請指定實際輸出,顯示您想要的完整輸出。 –

+0

@ rakeb.void我編輯了原文。 –

+0

您的「首選」和「實際」輸出完全不同意。請協調這一點。 –

回答

2

問題:你的循環是錯誤的。

試試這個:

public static void main(String[] args) { 

      int k=0; 
      String[] s = new String[20]; 
      String[] values = { "A", "B", "C", "D" }; 
      final int amount = 2; 
      for (int i = 0; i < values.length; i++){ 

       for (int j = 0; j < amount; j++){ //data of values as much as amount 
        s[k++] = String.format("%s%04d", values[i], k); 
       } 
      } 
      System.out.println(Arrays.toString(Arrays.copyOf(s,k))); 
    } 

輸出:

[A0001, A0002, B0003, B0004, C0005, C0006, D0007, D0008] 
1

用戶需要通過實際values陣列有2個迴路一個循環,然後另外一個則是amount(次數) 。

試試這個

List<String> a = new ArrayList<String>(); 
    String[] values = { "A", "B", "C", "D" }; 
    final int amount = 2; 
    int incrementVariable = 0; 
    for (int i = 0; i < values.length; i++){ 
     for(int j = 0; j< amount; j++){ 
      a.add(String.format("%s%04d", values[i], incrementVariable)); 
      incrementVariable +=1; 
     } 
    } 
    System.out.println(a); 
} 

輸出:

[A0000, A0001, B0002, B0003, C0004, C0005, D0006, D0007] 
0

我喜歡while循環更好:)

String[] s = new String[10]; 
String[] values = {"A", "B", "C", "D"}; 
final int amount = 2; 

for (int i = 0; i < values.length; ++i) { 
    int buffer = 0; 
    while(buffer <= amount) { 
     int index = i * amount + buffer; 
     s[index] = values[i] + String.format("%04d", index); 
     buffer++; 
    } 
} 

System.out.println(Arrays.toString(s)); 

[A0000,A0001,B0002,B0003,C0004,C0005 ,D0006,D0007,D0008,null]