循环创建自定义字符串
问题描述:
我正在循环将数据写入字符串数组。但我想要的是,我创建了另一个循环,我将遍历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, ...
答
问题:你的循环是错误的。
试试这个:
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]
答
用户需要通过实际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]
答
我喜欢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]
请指定实际输出,显示您想要的完整输出。 –
@ rakeb.void我编辑了原文。 –
您的“首选”和“实际”输出完全不同意。请协调这一点。 –