我试图在Java中将字母等级转换为数字等级
我知道将私有变量设置为字符数据类型,但我只是好奇为什么这种技术不起作用。我已经做了模拟器以及这是附加的。我也知道我不需要方法来实现这一点,但我正在尝试习惯使用方法进行编码我试图在Java中将字母等级转换为数字等级,java,types,Java,Types,我知道将私有变量设置为字符数据类型,但我只是好奇为什么这种技术不起作用。我已经做了模拟器以及这是附加的。我也知道我不需要方法来实现这一点,但我正在尝试习惯使用方法进行编码 public class LetterGrade { private String grade; private double numGrade; private String sign; public LetterGrade(String grade) { } public double sign() { if(g
public class LetterGrade {
private String grade;
private double numGrade;
private String sign;
public LetterGrade(String grade)
{
}
public double sign()
{
if(grade.equals("A"))
numGrade=4.0;
else if(grade.equals("B"))
numGrade=3.0;
else if(grade.equals("C"))
numGrade=2.0;
else if(grade.equals("D"))
numGrade=1.0;
else if(grade.equals("F"))
numGrade=0.0;
else
System.out.println("");
if(grade.substring(0,1).equals("-"))
numGrade=numGrade-0.3;
else if(grade.equals("+"))
numGrade=numGrade+0.3;
if(grade.equals("A+"))
System.out.println(4.0);
if(grade.equals("F+"))
System.out.println("Not a valid input.");
if(grade.equals("F-"))
System.out.println("Not a valid input.");
return numGrade;
}
}
您没有在构造函数中设置字段。像这样的
public LetterGrade(String grade)
{
this.grade = grade;
}
另外,我认为您需要String.startsWith(String)
和String.endsWith(String)
之类的
public double sign() {
if (grade.startsWith("A")) {
numGrade = 4.0;
} else if (grade.startsWith("B")) {
numGrade = 3.0;
} else if (grade.startsWith("C")) {
numGrade = 2.0;
} else if (grade.startsWith("D")) {
numGrade = 1.0;
} else {
numGrade = 0.0;
}
if (grade.endsWith("-")) {
numGrade -= 0.3;
} else if (grade.endsWith("+")) {
numGrade += 0.3;
}
if (grade.equals("F+")) {
System.out.println("Not a valid input.");
}
if (grade.equals("F-")) {
System.out.println("Not a valid input.");
}
return numGrade;
}
请告诉我们您的代码是如何出现错误的。它在做什么不应该做什么,不做什么应该做什么。一般来说,您可能希望通过添加我们理解问题所需的关于您的问题的尽可能多的相关信息来“充实”您的问题。首先,您从不将参数
grade
分配给任何东西,因为您现在编写代码,它应该生成NullPointerException
public double sign() {
if (grade.startsWith("A")) {
numGrade = 4.0;
} else if (grade.startsWith("B")) {
numGrade = 3.0;
} else if (grade.startsWith("C")) {
numGrade = 2.0;
} else if (grade.startsWith("D")) {
numGrade = 1.0;
} else {
numGrade = 0.0;
}
if (grade.endsWith("-")) {
numGrade -= 0.3;
} else if (grade.endsWith("+")) {
numGrade += 0.3;
}
if (grade.equals("F+")) {
System.out.println("Not a valid input.");
}
if (grade.equals("F-")) {
System.out.println("Not a valid input.");
}
return numGrade;
}