gpt4 book ai didi

java - Integer.parseInt() 问题

转载 作者:行者123 更新时间:2023-11-29 05:16:21 24 4
gpt4 key购买 nike

我在尝试让我的代码正常工作时遇到了一些问题。我正在为我的计算机科学课做一个项目,我必须让我的程序读取文件并执行一些数学运算。当我尝试这样做时,代码无法正常工作。然后我咨询了一位编写完全相同代码的 friend ,但没有成功。

程序读取的输入 .txt 文件如下所示:2/3,4/5-1/6,2/41/1,1/1

我写的代码是这样的:

import javax.swing.JFileChooser;

import java.util.*;

public class ProjectTest
{

public static void main(String[] args) throws Exception
{

JFileChooser chooserRational = new JFileChooser();
int returnValRational = chooserRational.showOpenDialog(null);
if(returnValRational == JFileChooser.APPROVE_OPTION)
{
System.out.println("You chose to open this file: " + chooserRational.getSelectedFile().getName());

Scanner input = new Scanner(chooserRational.getSelectedFile());

while(input.hasNext() == true)
{
String line = input.nextLine();
String[] output = line.split(",");
String[] output1 = output[0].split("/");
String[] output2 = output[1].split("/");

String a = output1[0];
String b = output1[1];
String c = output2[0];
String d = output2[1];

int int1 = Integer.parseInt(a);
int int2 = Integer.parseInt(b);
int int3 = Integer.parseInt(c);
int int4 = Integer.parseInt(d);

System.out.println(int1 + " " + int2 + " " + int3 + " " + int4);


}
input.close();
}
}
}

当我只输出字符串 a、b、c 和 d 时,代码工作得非常好,并且输出值也很完美。然而,当代码看到 Integer.parseInt(a) 时,它会给我一个看起来像这样的错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "?2"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at ProjectTest1.main(ProjectTest1.java:33)

如有任何帮助,我们将不胜感激。

最佳答案

因为您的数据文件包含一个 UTF-8 BOM .

您有两种选择:编辑您的源数据文件以删除 BOM,或者您可以添加一些代码来处理 BOM。对于第一个选项,使用 Notepad++ 并删除 BOM。对于第二种选择:

Scanner input = new Scanner(chooserRational.getSelectedFile());

if (input.nextByte() == 0xFE) {
input.nextByte();
input.nextByte();
} else {
input = new Scanner(chooserRational.getSelectedFile());
}

关于java - Integer.parseInt() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437767/

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