题解 | #字符串分隔#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
// 十六进制转十进制
Map<Character, Integer> map = new HashMap<Character, Integer>(){{
put('0', 0);
put('1', 1);
put('2', 2);
put('3', 3);
put('4', 4);
put('5', 5);
put('6', 6);
put('7', 7);
put('8', 8);
put('9', 9);
put('A', 10);
put('B', 11);
put('C', 12);
put('D', 13);
put('E', 14);
put('F', 15);
}};
// 去除前面的 0x
String str = scan.nextLine().substring(2);
int sum = 0;
// 循环遍历,每次乘16,进行进制转换
for(char ch : str.toUpperCase().toCharArray()){
sum = sum * 16 + map.get(ch);
}
System.out.println(sum);
}
}