我在使用緩衝區讀取器並將其轉換爲十進制數來讀取某個具有4個十六進制代碼的文件時遇到了很多麻煩。我能夠讓緩衝讀取器讀取文本文件並將其輸出到編譯器,但我需要程序來存儲4個值,並讓我的方法將十六進制轉換爲十進制。這是我到目前爲止有:從緩衝區讀取器十六進制到十進制轉換
import java.io.BufferedReader;
import static java.lang.System.*;
import java.io.*;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class HexToDecimal {
public static int hexToDecimal(String hexInput) throws IOException {
int decimal = 0;
int len = hexInput.length();
FileReader in = new FileReader("results.txt");
BufferedReader br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
out.printf(line + "\n");
}
in.close();
for (int i = 0; i < len; ++i) {
char c = hexInput.charAt(i);
int cValue;
switch (c) {
case '1':
cValue = 1;
break;
case '2':
cValue = 2;
break;
case '3':
cValue = 3;
break;
case '4':
cValue = 4;
break;
case '5':
cValue = 5;
break;
case '6':
cValue = 6;
break;
case '7':
cValue = 7;
break;
case '8':
cValue = 8;
break;
case '9':
cValue = 9;
break;
case 'A':
cValue = 10;
break;
case 'B':
cValue = 11;
break;
case 'C':
cValue = 12;
break;
case 'D':
cValue = 13;
break;
case 'E':
cValue = 14;
break;
case 'F':
cValue = 15;
break;
default: // unexpected character
throw new IllegalArgumentException("Non-hex character " + c
+ " found at position " + i);
}
decimal = 16 * decimal + cValue;
}
return decimal;
}
public static void main(String[] args) {
}
}
此外,我不能使用parseInt函數,這就是爲什麼我使用的情況下休息。當將十六進制轉換爲十進制時,這也給我帶來麻煩。任何幫助都非常感謝。
什麼給你的麻煩? – Rustam
請同時添加一個可能的輸入字符串的例子。並且在出現異常情況下執行堆棧跟蹤。你的'主要'空嗎? – Fildor
我會使用十六進制A2應該給我162,但當我寫System.out.println('A'+'2')時,我一直得到115;只是爲了我可以測試案例中斷計算。給我麻煩的是試圖讓程序將文本文件中的十六進制轉換爲十進制。我不知道如何存儲文本文件的值,並讓我的制動器將其轉換爲十進制。 – user2792215