我希望能够使用字符串调用某个int。所以例如
final int music = 0;
final int film = 1;
int[][] matrix = new int[2][2];
说我有一个包含“音乐”的String m 和包含“电影”的字符串f
有什么方法可以让它发挥作用:
matrix[m][f] = 1;
答案 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)
我们真的不清楚你想要实现什么,所以我猜你需要其中一种方法来配对int
到String
..
使用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。