gpt4 book ai didi

java - java中数字格式异常,输入错误

转载 作者:行者123 更新时间:2023-12-01 11:06:27 25 4
gpt4 key购买 nike

使用代码时

else if(command.equalsIgnoreCase("add")) {
System.out.println("Enter the Student's Name: ");
String name = input.nextLine();
System.out.println("Enter the Student's Number: ");
String studNum = input.nextLine();
System.out.println("Enter the Student's Address: ");
String address = input.nextLine();

langara.addStudent(name, address, studNum);
System.out.println("A Student added to the College Directory");
}

如果用户输入add,则假设要执行上述过程,在拼贴类(langara)中有一个“addStudent”方法:

public void addStudent(String name, String address, String iD) {
Student firstYear = new Student(name, address, iD);
collegeStudents.add(firstYear);


}

这使用构造函数创建了学生类的学生对象:

public Student(String name, String address, String iD) {
long actualId = Long.parseLong(iD);
studentName = name;
studentID = actualId;
studentAddress = new Address(address);
numberOfQuizzes = 0;
scoreTotal = 0;


}

我收到错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "Abernathy, C."
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.parseLong(Long.java:631)
at Student.<init>(Student.java:48)
at College.addStudent(College.java:33)
at CollegeTester.main(CollegeTester.java:53)

就好像它试图将学生姓名转换为长整型,但它应该将学生 ID 转换为长整型..

这是创建扫描仪、创建学院和初始化命令的位置:

Scanner input = new Scanner(System.in);

College langara = new College();

String command = "";

System.out.print("College Directory Commands:\n" +
"add - Add a new Student\n" +
"find - Find a Student\n" +
"addQuiz - Add a quiz score for a student\n" +
"findHighest - Find a student with the highest quiz score\n" +
"delete - Delete a Student\n" +
"quit - Quit\n");

command = input.nextLine();

输入是从 input.txt 文件中读取的,每个输入都在其自己的行上。该命令在文件开头的输入是:

add
Abernathy, C.
10010123
100, West 49 Ave, Vancouver, BC, V7X2K6

这里出了什么问题?

最佳答案

现在看起来不错,但我发誓,当我第一次看到这个(并复制/粘贴你的代码)时,对 langara.addStudent 的调用具有名称、studNum、地址等参数。我将此类与您的输入文件放在一起,它似乎工作正常:



import java.io.FileInputStream;
import java.util.Scanner;

public class StackOverflow_32895589 {

public static class Student
{
String studentName;
long studentID;
String studentAddress;
long numberOfQuizzes;
long scoreTotal;

public Student(String name, String address, String iD)
{
studentName = name;
studentID = Long.parseLong(iD);
studentAddress = address;
numberOfQuizzes = 0;
scoreTotal = 0;
}
}

public static void main(String[] args)
{
try{
System.setIn(new FileInputStream("c:\\temp\\input.txt"));
}
catch (Exception e)
{
throw new RuntimeException(e);
}
Scanner input = new Scanner(System.in);
String command = input.nextLine();

if (command.equals("add"))
{

System.out.println("Enter the Student's Name:");
String name = input.nextLine();
System.out.println("Enter the Student's Number:");
String studNum = input.nextLine();
System.out.println("Enter the Student's Address:");
String address = input.nextLine();
System.out.println("[" + name + "][" + studNum + "][" + address + "]");
input.close();
addStudent(name, address, studNum);
}
}

public static void addStudent(String name, String address, String iD)
{
Student firstYear = new Student(name, address, iD);
}
}

关于java - java中数字格式异常,输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32895589/

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