我正在慢慢尝试编写一个将十六进制数字转换为十进制的程序。我对阅读完成名的代码不感兴趣,因为我想自己做。我有一个主意,但有一些干扰我。

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

希望你能明白。

10-05 22:21