gpt4 book ai didi

java - 读取十六进制文件并将其转换为十进制

转载 作者:行者123 更新时间:2023-11-30 11:13:15 25 4
gpt4 key购买 nike

当读取一个包含 16 进制数字的文件时,我的扫描仪只读取偶数,在奇数上抛出 No Such Element Exception ... .我现在的代码如下...

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.NoSuchElementException;

public class HexToDecimalConverter {
public static void main(String[] args) {
try {
Scanner HexFile = new Scanner(new File("Hexidecimal.txt"));

do {
String Hex = HexFile.next();
System.out.println(Hex);
int outputDecimal = Integer.parseInt(Hex, 16);
System.out.println(outputDecimal);
} while (HexFile.next() != " ");

} catch (FileNotFoundException fileNotFoundExc) {
System.out.println("file not found");
System.exit(0);
} catch (IOException IOExc) {
System.out.println("IO Exception");
System.exit(0);
} catch (NoSuchElementException noSuchElementExc){
System.out.println("No Such Element");
System.exit(0);
}


{
}
}
}

最佳答案

您的情况:

} while (HexFile.next() != "  ");

还读取一个十六进制数并将其丢弃(因为您没有在任何地方存储它的返回值)。这解释了为什么您的代码只打印偶数。

改为使用以下条件:

} while (HexFile.hasNext());

Scanner.hasNext()仅测试是否有更多 token ,但如果有更多 token 则不读取或丢弃下一个 token 。

您可能还想使用一个 while 循环,它在读取之前进行测试,因为文件可能不包含任何内容,例如:

while (HexFile.hasNext()) {
String Hex = HexFile.next();
// rest of your code
}

关于java - 读取十六进制文件并将其转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com