Reh*_*qvi 0 arrays math int integer char
当我尝试将我的char变量从我的char数组转换为int时,我发生了一些奇怪的混乱.
这是我的代码:
public class Luhn {
private String cardNumber;
private char[] cardArray;
public Luhn(String cardNumber) {
this.cardNumber = cardNumber;
cardArray = new char[cardNumber.length()];
for (int i = 0; i < cardNumber.length(); i++) {
cardArray[i] = cardNumber.charAt(i);
}
public void calculation() {
for(int i = cardArray.length-1; i >= 0; i-=2) {
char y = cardArray[i];
int x = (int) (cardArray[i] * 1);
if(x > 9) {
//int total = 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在x中得到奇怪的输出.类似于58.我正在向后访问数组并将每个第二个数字检索回数组的前面.我基本上希望x成为每个数组元素中的数字.我知道用这一小段代码它会不断地覆盖x,但是我希望它是char数组中指定的数字,而不是一些与我的数组元素不匹配的随机数.问题出在计算方法中,我尝试将char转换为int.
请帮忙
谢谢.
例如;
你可以做
(int)(cardArray[i] - '0')
Run Code Online (Sandbox Code Playgroud)
将单个数字转换为数字.
你可以这样做的原因是因为每个char都是一个数字.
'0' = 48
'1' = 49
'2' = 50
'3' = 51
...
'9' = 57
Run Code Online (Sandbox Code Playgroud)
减去该值0可获得每个字符的整数值.
| 归档时间: |
|
| 查看次数: |
12165 次 |
| 最近记录: |