Converting Hexadecimal String to Decimal Integer

后端 未结 14 1956
感动是毒
感动是毒 2020-12-09 16:02

I wrote some code to convert my hexadecimal display string to decimal integer. However, when input is something like 100a or 625b( something with letter) I got an error like

14条回答
  •  眼角桃花
    2020-12-09 16:46

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the value");
        String s = sc.next();
        //String s = "AD";
        String s1 = s.toUpperCase();
        int power = 0;
        double result = 0;      
        char[] c = s1.toCharArray();
        for (int i = c.length-1; i >=0  ; i--) {
            boolean a = true;
            switch(c[i]){
            case 'A': c[i] = 10; a = false; break;
            case 'B': c[i] = 11; a = false; break;
            case 'C': c[i] = 12; a = false; break;
            case 'D': c[i] = 13; a = false; break;
            case 'E': c[i] = 14; a = false; break;
            case 'F': c[i] = 15; a = false; break;  
            }
            if(a==true){
                result = result + (c[i]-48) * Math.pow(16, power++);
           }else {
               result = result + (c[i]) * Math.pow(16, power++);
           }
    
        }
        System.out.println(result);
    

提交回复
热议问题