所以说如果我有一系列带有名称的字符串整数,我:i1
,i2
,i3
等但是想要用字符串组合构成每个名字。一个整数,如:
String i1 = "abc";
String i2 = "bca";
String i3 = "cba";
for (int i = 1; i <= 3; i++) {
String a = "i" + i;
int aa = Integer.parseInt(a);
ArrayList<String>.add(aa);
}
我怎么能实现这个目标?这个for循环只是将“i1”,“i2”和“i3”添加到List中,而不是“abc”,“bca”和“cba”。
答案 0 :(得分:4)
public class Main {
private String i1 = "abc";
private String i2 = "bca";
private String i3 = "cba";
public static void main(String[] args) {
new Main();
}
public Main(){
for (int i = 1; i <= 3; i++) {
String a = "i" + i;
String f = null;
try {
f = (String) this.getClass().getDeclaredField(a).get(this);
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(f);
}
}
}
输出:
abc
bca
cba
关键点:
getDeclaredField()
- 返回给定班级中的私人字段get()
- 返回给定对象应该注意的是,您应该首先考虑使用Map<String, String>
结构。其他答案已经为此提供了解释。
答案 1 :(得分:3)
您需要使用一些Map实现。
例如:
String[] words = { "abc", "bca", "cba" };
Map<String, String> map = new HashMap<String, String>();
for (int i = 1; i <= 3; i++) {
String a = "i" + i;
map.put(a, words[i - 1]);
}
最后,地图看起来像:
--key-- | --value--
-------------------
"i1" | "abc"
"i2" | "bca"
"i3" | "cba"
答案 2 :(得分:0)
使用Integer.toString(),其中一个选项可以使用字母字符和数字来表示String
。
您还需要创建List
以将String
添加到。
List<String> list = new ArrayList<>();
for (int i = 1; i <= 3; i++) {
list.add(whatever);
}
或者,如果您尝试存储String到Integer的映射,那么您应该查看Map
,可能是HashMap
。
答案 3 :(得分:0)
使用字符串数组:
String[] stringArr = new String[3]
ArrayList<String> list = new ArrayList<String>();
stringArr[0] = "abc";
stringArr[1] = "bca";
stringArr[2] = "cba";
for(int i = 0; i<String.length; i++)
{
list.add(Integer.parseInt(stringArr[i]));
}