我在if语句中检测到CHAR时遇到了一些麻烦。 我有一个得分整数,我在一个字符串中,并从字符串,我做了一个char数组。 我的问题是,当我尝试检测char的数字时,它会返回“Error.png”。
请帮帮我:)。
代码:
scoreString = "" + score;
System.out.println(scoreString + " - " + scoreString.length());
scoreA = scoreString.toCharArray();
for(int counter = 0; counter < scoreString.length(); counter++){
Texture drawT;
if(scoreA[counter] == 0) drawT = i0;
else if(scoreA[counter] == 1) drawT = i1;
else if(scoreA[counter] == 2) drawT = i2;
else if(scoreA[counter] == 3) drawT = i3;
else if(scoreA[counter] == 4) drawT = i4;
else if(scoreA[counter] == 5) drawT = i5;
else if(scoreA[counter] == 6) drawT = i6;
else if(scoreA[counter] == 7) drawT = i7;
else if(scoreA[counter] == 8) drawT = i8;
else if(scoreA[counter] == 9) drawT = i9;
else drawT = error;
MainClass.batch.draw(drawT, 5 + (9 * counter), 95);
}
答案 0 :(得分:4)
scoreA[counter] == 1
将字符与数值1进行比较,这是不正确的。 '1'
与1
不同。实际上,'1'
实际上等于十六进制中的31
。使用类似的东西:
if(scoreA[counter] == '0') drawT = i0;
else if(scoreA[counter] == '1') drawT = i1;
//continue on
我显然包含了一个简短的片段,但它应该足够了。
答案 1 :(得分:0)
你想要字符文字。 你需要写
if(scoreA[counter] == '1')
答案 2 :(得分:0)
你的错误是认为数字的char
表示与数字本身相同 - 它们不是。 chars
代表ASCII个字符(严格来说是unicode,但为此目的我们可以假定为ASCII),因此字符0
的代码不是数字0
。要解决此问题,您只需在比较中使用char
文字:
if(scoreA[counter] == '0') drawT = i0;
else if(scoreA[counter] == '1') drawT = i1;
... etc
答案 3 :(得分:0)
总是你必须在单个外套中设置字符文字
<强>即强>
scoreA[counter] == '0'