通常,我们将对象创建为:
String s1 = "a";
String s2 = "b";
String s3 = "c";
String s4 = "d";
...
我尝试用两个字符串数组创建它们:
String[] names = { "s1", "s2", "s3", "s4" };
String[] vals = { "a", "b", "c", "d" };
int len = names.length;
for(int i = 0; i < len; i++){
String names[i] = vals[i];
}
但它不起作用。我该怎么办?
答案 0 :(得分:0)
您的价值名称及其内容是不同的东西。 在你的例子中,你犯了一个错误:
String[] names = { "s1", "s2", "s3", "s4" };
String[] vals = { "a", "b", "c", "d" };
int len = names.length;
for(int i = 0; i < len; i++){
//name[i] already exists so you can remove String
names[i] = vals[i];
}
在你的例子中没有s1,s2等字符串,只有名字[]是一个String数组。 你想做什么?
在我看来,你正试图获得一个关键/价值类型的数据。所以你需要的是一张地图。
例如:
Map<String, String> namesAndValues = new HashMap<String,String>();
for(int i = 0; i < numberOfNamesYouNeedToPut; i++){
// supposing vals's size is at least numberOfNamesYouNeedToPut
namesAndValues.put("s" + i+1, vals[i]);
}
答案 1 :(得分:0)
当你这样做时
for(int i = 0; i < len; i++){
names[i] = vals[i];
}
它只是用String数组的值替换String数组名的值。
此外,String names[i] = vals[i];
不是有效的数组声明和初始化。
编辑:
String newArray[] = new String[len];
System.arraycopy(vals,0,newArray,0,len);
这会将值复制到新数组。