在下面的方法中,我有一个十六进制值的文本文件,该文件传递到字符串数组列表中,我有一个工作方法,可将字符数组转换为标题为“ 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("");
}
}
}
}