![](/img/trans.png)
[英]Java Httpclient HttpRequestRetryHandler doesn't work. How to implement retrys?
[英]Switch case doesn't work. Java
我正在尝试使用开关。 它适用于所有情况,只有一种情况与其他情况完全没有区别。
它测试除以第一个数组(int)的13所得的余数,并以此将特定的值分配给第二个数组(Char)。
public static char[] FindValue(int[] OCards) {
char[] OValue = new char[5];
int n;
for (int i = 0; i < 5; i++) {
n = OCards[i] % 13;
switch (n) {
case 0:
OValue[i] = 'A';
break;
case 1:
OValue[i] = '2';
break;
case 2:
OValue[i] = '3';
break;
case 3:
OValue[i] = '4';
break;
case 4:
OValue[i] = '5';
break;
case 5:
OValue[i] = '6';
break;
case 6:
OValue[i] = '7';
break;
case 7:
OValue[i] = '8';
break;
case 8:
OValue[i] = '9';
break;
case 9:
OValue[i] = '10'; //Error here 'unclosed character literal'
break;
case 10:
OValue[i] = 'V';
break;
case 11:
OValue[i] = 'D';
break;
case 12:
OValue[i] = 'R';
break;
}
}
return OValue;
}
正如其他人指出的那样,问题在于'10'
不是字符 。
我们可以解决这个问题,同时省去了很多弯曲的手指:
n = OCards[i] % 13;
OValue[i] = "A23456789TVDR".charAt(n);
那一行替换您的整个switch
语句。
不过,我不确定要使用的正确符号。 用英语,它将是一个T
但是用法语,您显然不能将D
用作dame和dix 。
您的错误是因为您试图用两个字符组成一个字符,而您只能用一个字符组成一个字符。
您将需要更改数组以存储整数,或者如果需要存储char的情况通常用'T'或't'进行更改。
Ovalue
是char
的数组; '10'
不是一个单独的字符。
怎么样
case 9:
OValue[i] = 'T'; //use T char to stand for 10
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.