gpt4 book ai didi

java错误信息空指针异常

转载 作者:行者123 更新时间:2023-12-01 07:27:05 26 4
gpt4 key购买 nike

这是我尝试运行下面的代码时收到的错误。我的老师说我们可以向任何地方寻求帮助。如果有人能帮助我解决这个错误,我将非常感激

java.lang.NullPointerException
at Practise_Assessment.main(Practise_Assessment.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

如果需要的话,这是我的代码

import java.text.NumberFormat;
import java.util.Arrays;

public class Practise_Assessment {

public static String absences(String prompt) {// user input for name and
// days absent
System.out.println(prompt);
java.util.Scanner keyboard = new java.util.Scanner(System.in);
return keyboard.nextLine();
}


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

int numDayEntries ;
int numNameEntries;
int[] daysArray = null ;
String[] nameArray = null ;

boolean done = false;

while (!done) {
System.out.println("enter # to stop");
String absences = absences("enter name of person absent then the amount of days they were absent");// the value of the users input

for(numDayEntries =0; numDayEntries < daysArray.length;numDayEntries++ ){
daysArray = new int[numDayEntries];
}
for(numNameEntries = 0; numNameEntries < nameArray.length;numNameEntries++ ){

nameArray = new String[numNameEntries];
}

if (absences.equalsIgnoreCase("#")) {
done = true;
} else {
String DaysAbsent =absences.replaceAll("[^0-9]", "") ;
int daysAbsent = ((Number) NumberFormat.getInstance().parse(DaysAbsent)).intValue();// converts a string to an int
String absentee = absences.replaceAll("\\d", "");// replace all digits in the user input to nothing leaving just the name

daysArray[numDayEntries] = daysAbsent;
nameArray[numNameEntries] = absentee;
}
}
System.out.println(Arrays.toString(daysArray));
}
}

最佳答案

您的 for 循环正在计数到 daysArray.length,但 daysArraynull。此外,您的 for 循环无论如何都没有任何意义;您正在创建然后丢弃许多相同的数组。非常不清楚您的代码试图实现什么目的,因为您要求提供一个单个人的姓名,然后输入一个单个表示缺勤次数的数字。

建议的方法是 (1) 使用包含学生姓名和缺勤次数的对象,将这些信息保存在单个记录中,并且 (2) 使用 List 而不是如果您不知道需要多少项,则可以使用数组,因为 List 的大小是可变的。

关于java错误信息空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22777550/

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