我正在慢慢尝试编写一个将十六进制数字转换为十进制的程序。我对阅读完成名的代码不感兴趣,因为我想自己做。我有一个主意,但有一些干扰我。
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String any = input.nextLine();
char[] cArray = any.toCharArray();
for(int i=0; i<cArray.length; i++){
System.out.print(cArray[i]+" ");
}
}
}
Input: ab12
Output: a b 1 2
我想用
a
替换10
,用b
替换11
,用c
替换12
,等等。如果我在for循环中添加一个if语句,它将起作用。
for(int i=0; i<cArray.length; i++){
if(cArray[i] == 'a'){
cArray[i] = '10'; // doesn't work, read below
}
System.out.print(cArray[i]+" ");
}
问题是我想用
a
替换10
,并且10
不再是字符,因为它由两个字母组成。这就是为什么我想知道如何使此代码与strings
而不是characters
一起使用? 最佳答案
提示
'a' - 87 = 10
因此,您可以使用:
(int) cArray[i] - 87
因为:
(int)'a' = 97
希望你能明白。