Java问题,字符串返回空值,尽管使用Scanner类输入数据
我正在为一个非常简单的类编写一个程序。它只需要我打印一张成绩表,并且能够输入3条信息(这里用字符串Java问题,字符串返回空值,尽管使用Scanner类输入数据,java,string,null,Java,String,Null,我正在为一个非常简单的类编写一个程序。它只需要我打印一张成绩表,并且能够输入3条信息(这里用字符串studentName、idNumber和assignmentTitle表示)。成绩表必须存储在单个字符串中。对我来说,这似乎应该可以工作,但无论出于何种原因,它都会在输入的studentName、idNumber和assignmentTitle应该出现的地方输出空值。很简单的问题,有什么想法吗?这是我的密码 import java.util.Scanner; class GradingForm
studentName、idNumber
和assignmentTitle
表示)。成绩表必须存储在单个字符串中。对我来说,这似乎应该可以工作,但无论出于何种原因,它都会在输入的studentName、idNumber
和assignmentTitle
应该出现的地方输出空值。很简单的问题,有什么想法吗?这是我的密码
import java.util.Scanner;
class GradingForm
{
static String studentName;
static String idNumber;
static String assignmentTitle;
static String gradeSheet = "********************************* \n\n" +
assignmentTitle + "\n\n" +
studentName + " " + idNumber + "\n\n" +
"Grade Summary:\n\n" +
"Program Correctness: Quality of Style:\n" +
"Late Deduction: Overall Score:\n" +
"Comments:";
public static void gradeFormValues()
{
Scanner inData;
inData = new Scanner(System.in);
System.out.println("Enter student's name: ");
studentName = inData.nextLine();
System.out.println("Enter student ID number: ");
idNumber = inData.nextLine();
System.out.println("Enter Assignment title: ");
assignmentTitle = inData.nextLine();
}
public static void printGradeSheet()
{
System.out.println(gradeSheet);
}
public static void main(String[] args)
{
gradeFormValues();
printGradeSheet();
}
}
您的问题是,在为这些变量赋值之前使用这些变量:
static String gradeSheet = "********************************* \n\n" +
assignmentTitle + "\n\n" +
studentName + " " + idNumber + "\n\n" +
"Grade Summary:\n\n" +
"Program Correctness: Quality of Style:\n" +
"Late Deduction: Overall Score:\n" +
"Comments:";
仅在为字符串赋值后才需要生成字符串,例如:
public static void printGradeSheet()
{
gradeSheet = "********************************* \n\n" +
assignmentTitle + "\n\n" +
studentName + " " + idNumber + "\n\n" +
"Grade Summary:\n\n" +
"Program Correctness: Quality of Style:\n" +
"Late Deduction: Overall Score:\n" +
"Comments:";
System.out.println(gradeSheet);
}
您的问题是如何实例化类。情况就是这样:
studentName is set to null
idNumber is set to null
assignmentTitle is set to null
gradeSheet is set using the current values of studentName etc (null).
之后,您读取数据并设置变量,但这不会更改已设置的成绩表的值。您的问题在于初始化变量的顺序 初始化
成绩表
(带有静态字符串成绩表=…
的行)、作业标题
、学生姓名
和ID号
为空
您应该在完成接受用户输入后初始化成绩表