我有一个分配,为了简化代码,我希望能够基于一个int的值引用一个String。
//Below is a rough example of what I'm trying to accomplish.
String player1Piece = "x";
String player2Piece = "O";
int playerturn; //Assigned value of either 1 or 2 later in code.
...
System.out.println(player(playerturn)Piece);
让我知道这是否有可能,但如果不能,我当前的解决方案是使用switch语句,然后复制并粘贴输出代码。
最佳答案
Java是一种编译语言,没有eval
函数。您可以使用简单的if - else
if (playerturn == 1) {
System.out.println(player1Piece);
} else {
System.out.println(player2Piece);
}
或者您可以将片段存储在数组中,然后按索引访问数组。喜欢,
String[] pieces = { "X", "O" };
// ...
System.out.println(pieces[playerturn - 1]);
请注意,数组是从
0
索引的(因此,如果要使用值playerturn - 1
和1
,则必须使用2
)。或者您可以将这些片段存储在地图中,然后通过按键访问该地图。喜欢,
Map<Integer, String> map = new HashMap<>();
map.put(1, "X");
map.put(2, "O");
// ...
System.out.println(map.get(playerturn));
请注意,使用
Map
时,无需修改即可使用playerturn
值。