我有一个分配,为了简化代码,我希望能够基于一个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 - 11,则必须使用2)。

或者您可以将这些片段存储在地图中,然后通过按键访问该地图。喜欢,

Map<Integer, String> map = new HashMap<>();
map.put(1, "X");
map.put(2, "O");
// ...
System.out.println(map.get(playerturn));


请注意,使用Map时,无需修改即可使用playerturn值。

07-26 09:08