【发布时间】:2017-04-05 19:41:28
【问题描述】:
场景:
- 有两个分数。敌人得分和玩家得分。
- 敌人得分变量是
score0。 - 玩家得分变量是
score1。 - 有一个全局变量 turn,它的值是 0 或 1。
- 如果轮数为0:轮到敌人了
- 如果轮到 1:轮到玩家了
- 分数只能在玩家或敌人回合时更新。因此,0 和 1 与得分和转弯有关。
假设玩家得分为 5,轮到玩家时,她/他获得 1 分。所以我需要将玩家的分数更改为 6。每个数字都是一个可绘制的资源,标题为 n0、n1、n2、n3 等 (n0-n9)
这行得通:
所以如果 score=6,轮到玩家了,那么:
score1.setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName()));
这也有效:
if (turn==0) { img = score0; }
else if (turn==1) { img = score1; }
img.setImageResource(getResources().getIdentifier("n" + score, "drawable", getPackageName()));
但我宁愿有这样的东西:
Image img = "score"+turn
有没有一种方法可以创建一个连接字符串和数字的变量来创建我要访问的变量名称?
编辑 / MOD推荐:我很欣赏模组为流畅性而进行的编辑。考虑到这是我第一篇关于堆栈溢出的帖子,我没有意识到有特定的格式。但是,我建议模组不要编辑段落的大块。尤其是当用户说她是 Java 新手时。因为人们提供的响应将基于技能水平。如果读者认为我精通 Java,他们会回答他们认为我理解的答案。但如果我说“我对此很陌生”——那是因为我正在寻找通俗易懂的答案。只是新模组的思考。
【问题讨论】:
-
你为什么不把东西放在一个列表或数组中,让数字成为索引?
-
使用
Map。或List。或者一个数组。回答实际问题;是的,您可以使用String引用变量,但这很复杂,在您更高级之前不需要这样做。
标签: java variables concatenation