输入一个十六进制的数值字符串。
输出该数值的十进制字符串。
示例:
输入:0xAA
输出:170
public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()){ String sc = in.next(); int count = 0; //定义十进制 for (int i=0; i<sc.length()-2; i++){ char tc = sc.charAt(i+2); //都是以0x开头,从第三位开始遍历 int t = 0; //判断tc在哪个区间 ‘a’/‘A’~'f'/‘F’ 是10~15 if (tc>='0' && tc<='9'){ t = tc - '0' ; }else if(tc>='a' && tc<='f'){ t = tc - 'a' + 10; }else if (tc>='A' && tc<='F'){ t = tc - 'A' + 10; } //sc.length-3 是因为 16进制以0x开头 i==0时 0x后有一位便是16的0次方为1 // 两位是16的2次方为2..... count += t * Math.pow(16, sc.length()-i-3); } System.out.println(count); } }