从创建的字符串中获取String Integer的值

时间:2013-12-22 16:17:09

标签: java string integer

所以说如果我有一系列带有名称的字符串整数,我:i1i2i3等但是想要用字符串组合构成每个名字。一个整数,如:

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”。

4 个答案:

答案 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

关键点:

应该注意的是,您应该首先考虑使用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]));
}