题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
输入16进制的字符串,输出10进制的字符串,Java代码
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Scanner; /** * 输入16进制的字符串,输出10进制的字符串 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // String s1 = sc.nextLine(); // List<String> list = new ArrayList<>(); // 16进制字符串以0x开头,那么就从第三位开始算 HashMap<Character, Integer> hashMap = getHashMap(); while(sc.hasNext()){ String s = sc.nextLine(); char[] chars = s.toCharArray(); int length = chars.length; long sum = 0; int count = 1; for(int i = length-1; i>1; i--){ sum += hashMap.get(chars[i])*Math.pow(16,count-1); count++; } System.out.println(sum+""); } } public static HashMap<Character, Integer> getHashMap() { HashMap<Character, Integer> character = new HashMap<>(); character.put('0',0); character.put('1',1); character.put('2',2); character.put('3',3); character.put('4',4); character.put('5',5); character.put('6',6); character.put('7',7); character.put('8',8); character.put('9',9); character.put('A',10); character.put('B',11); character.put('C',12); character.put('D',13); character.put('E',14); character.put('F',15); return character; } }