有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组在java中如何将十六进制值的数组列表传递到char方法中

在我下面的方法中,我有一个十六进制值的文本文件,它被传递到一个string arraylist中,我有一个将字符数组转换成名为“hexToBin”的二进制的工作方法

我目前陷入困境,我的问题是如何将arraylist中的每个十六进制值作为字符串传递,以便使用转换方法将十六进制值转换为二进制

我不允许使用java的自动转换方法解析命令

hexadecimal text file ~
33CDAEFFAD
032DAE01AD
196CDAEFC0
21A00D0000
100CDAEFFA
F3ABCDEFAB
29A0EDF301
3ABCDEFABC


import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class Main
{
    static void hexToBin(char hexdec[])
    {
        int i = 0;

        while (hexdec[i] != '\u0000')
        {
            switch (hexdec[i])
            {
                case '0':
                    System.out.print("0000");
                    break;
                case '1':
                    System.out.print("0001");
                    break;
                case '2':
                    System.out.print("0010");
                    break;
                case '3':
                    System.out.print("0011");
                    break;
                case '4':
                    System.out.print("0100");
                    break;
                case '5':
                    System.out.print("0101");
                    break;
                case '6':
                    System.out.print("0110");
                    break;
                case '7':
                    System.out.print("0111");
                    break;
                case '8':
                    System.out.print("1000");
                    break;
                case '9':
                    System.out.print("1001");
                    break;
                case 'A':
                    System.out.print("1010");
                    break;
                case 'B':
                    System.out.print("1011");
                    break;
                case 'C':
                    System.out.print("1100");
                    break;
                case 'D':
                    System.out.print("1101");
                    break;
                case 'E':
                    System.out.print("1110");
                    break;
                case 'F':
                    System.out.print("1111");
                    break;
                default:
                    System.out.print("\nInvalid hexadecimal digit " + hexdec[i]);
            }
            i++;
        }
    }

    public static void main(String[] args) throws IOException
    {
        Scanner sc = new Scanner(new File("RAMerrors8x4c"));
        ArrayList<String> values = new ArrayList<String>();
        while(sc.hasNext())
        {
            values.add(sc.nextLine());
        }

        for(int i = 0; i < values.size(); i++)
        {
            try {
                hexToBin(values.get(i).toCharArray());
            }
            catch (ArrayIndexOutOfBoundsException e){
                System.out.print("");
            }
        }
    }
}

共 (0) 个答案