不考虑输入,直接使用对应数字乘上16的对应位数的次方之和即可
如果考虑输入,且为16进制的字符串:

   public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while(sc.hasNext()){
            //输入16进制字符串  0xABCDEF
            String hexString = sc.nextLine();
            long n = HexToDec(hexString);
            System.out.println(n);
        }

    }

private static long HexToDec(String hexString) {
        String s = hexString.substring(2,hexString.length());
        int len = s.length();
        long ret = 0;
        for(int i=0;i<s.length();i++){
            char ch = s.charAt(i);
            int t = 0;
            //处理字符为对应的数字
            if(ch>='0'&& ch<='9'){
                t = ch-'0';
            }
            if(ch>='A'&&ch<='F'){

                t = ch-'7';
            }

            ret += t*Math.pow(16,len-1);
            len--;

        }
        return ret;
    }