import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String s = in.nextLine().trim(); String hexDigits = s.substring(2); // 去掉前导的0x long result = 0; for (int i = 0; i < hexDigits.length(); i++) { char c = hexDigits.charAt(i); int value; if (Character.isDigit(c)) { value = c - '0'; } else { value = 10 + (c - 'A'); } result = result * 16 + value; } System.out.println(result); } }
https://www.nowcoder.com/discuss/727521113110073344
思路:
1.读取输入:使用Scanner.nextLine()读取输入的十六进制字符串,并去除前后空格。
2.去除前缀:使用substring(2)方法去掉字符串的前的"0x"。
3.遍历字符:对每个字符进行处理:如果是数字字符,转换为对应的数值。如果是字母字符,比如A-F,转换为对应的10-15。
4.计算十进制值:通过累乘累加,从左到右处理每个字符,逐步计算出最终的十进制值。
5.输出结果:打印最终的十进制结果。