猿问

此段代码字符串转换成整型时为何出错。

    以下代码是一个十六进制转十进制。我的想法是十六进制转二进制转十进制。但是在二进制转十进制的过程中出现了问题,提示数据格式异常。
请问是何种原因,如何解决?

import java.util.Scanner;

public class Sixteen_Ten {
    public static void main(String[] args)throws Exception{
        Scanner in = new Scanner(System.in);
        String s = in.next();
        String[] arr = new String[s.length()];
        for(int i = 0;i<s.length();i++){
            arr[i]=s.substring(i,i+1);
        }
        for(int i = 0;i<arr.length;i++){
            switch(arr[i]){
            case "0":
                arr[i]="0000";
            case "1":
                arr[i]="0001";
            case "2":
                arr[i]="0010";
            case "3":
                arr[i]="0011";
            case "4":
                arr[i]="0100";
            case "5":
                arr[i]="0101";
            case "6":
                arr[i]="0110";
            case "7":
                arr[i]="0111";
            case "8":
                arr[i]="1000";
            case "9":
                arr[i]="1001";
            case "A":
                arr[i]="1010";
            case "B":
                arr[i]="1011";
            case "C":
                arr[i]="1100";
            case "D":
                arr[i]="1101";
            case "E":
                arr[i]="1110";
            case "F":
                arr[i]="1111";
                break;
            }
        }
        String er = "";
        double num = 0;
        for(int i = 0;i<arr.length;i++){
            er = er + arr[i];
        }
        String[] arr1 = new String[er.length()];
        int[] arr2 = new int[er.length()];
        for(int i = 0;i<er.length();i++){
            arr1[i]=s.substring(i,i+1);
            arr2[i]=Integer.valueOf(arr1[i]).intValue();//在此处发生错误
             num = num + Math.pow((double)arr2[i], i);
        }
        System.out.print((int)num);
    }
}
素胚勾勒不出你
浏览 383回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答