【问题标题】:How to dynamically call a variable based on another variable in javajava中如何根据另一个变量动态调用一个变量
【发布时间】:2019-12-25 04:54:42
【问题描述】:

我有一个任务,为了简化代码,我希望能够根据 int 的值引用一个字符串。

//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 语句,然后复制并粘贴输出代码。

【问题讨论】:

  • 听起来你需要一个字符串数组而不是两个单独的字符串......
  • 真是个好主意。谢谢!
  • 处理这类事情的另一个常用工具是Map

标签: java variables


【解决方案1】:

Java 是一种编译语言,没有eval 函数。你可以使用简单的if - elselike

if (playerturn == 1) {
    System.out.println(player1Piece);
} else {
    System.out.println(player2Piece);
}

您可以将片段存储在数组中,并通过索引访问数组。喜欢,

String[] pieces = { "X", "O" };
// ...
System.out.println(pieces[playerturn - 1]);

注意数组是从 0 索引的(所以如果你想使用值 12playerturn - 1 是必需的)。

您可以将碎片存储在地图中,并通过按键访问地图。喜欢,

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

注意对于Mapplayerturn 值无需修改即可使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多