题解 | #进制转换#

进制转换

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;
    }
}
全部评论

相关推荐

02-16 10:35
已编辑
西安科技大学 后端
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务