是否可以将字符串链接到int?

时间:2013-12-04 11:24:48

标签: java

我希望能够使用字符串调用某个int。所以例如

final int music = 0;
final int film = 1;
int[][] matrix = new int[2][2];

说我有一个包含“音乐”的String m 和包含“电影”的字符串f

有什么方法可以让它发挥作用:

matrix[m][f] = 1;

3 个答案:

答案 0 :(得分:1)

一种方法是使用HashMap:

HashMap<String,Integer> matrix = new HashMap<String,Integer>();
        matrix.put("music", 1);
        matrix.put("film", 2);

        String m = "music";
        System.out.println(matrix.get(m));

答案 1 :(得分:0)

我还建议使用像Prashant这样的HashMap,但是如下所示:

String music = "music";
String film = "film";
int numberForMusic = 0;
int numberForFilm = 1;
HashMap<String,Integer> matrix = new HashMap<String,Integer>();
    matrix.put(music + "_" + film, numberForMusic+numberForFilm);

通过简单地将您的密钥与任何语法相结合,您可以检索int 1,例如在我的例子中通过下划线_

OR

您也可以像Prashant那样做,并单独添加每个键:

    HashMap<String,Integer> matrix = new HashMap<String,Integer>();
    matrix.put("music", 0);
    matrix.put("film", 1);

然后检索这些键的两个值,然后再添加它们。

答案 2 :(得分:0)

我们真的不清楚你想要实现什么,所以我猜你需要其中一种方法来配对intString ..

使用HashMap:

HashMap<String, Integer> matrix = new HashMap<>();
matrix.put("SomeString", 1);

System.out.println(matrix.get("SomeString")); // will print out 1

使用枚举:

public enum Foo{

    SOMESTRING(1);

    private final int value;

    private Foo(int n){
        value = n;
    }

    public int getValue(){
        return value;
    }
}

System.out.println(Foo.SOMESTRING.getValue()); // print out 1

文档:

http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html

http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

如果您需要动态添加/更改分配,请转到HashMap。