作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个代码来将字母等级转换为数值。我有这段代码,但是当我运行它时,我收到一条错误消息 java.lang.StringIndexOutOfBoundsException
。
我做错了什么?
这是代码:
import java.util.Scanner;
public class Lab6Smalls {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String grade;
String letter1;
String letter2;
double gpa = 0;
System.out.print("Enter a letter grade: ");
grade = scan.nextLine();
letter1 = grade.substring(0,1);
letter2 = grade.substring(1,2);
if (letter1.equals("A") && letter2.equals("+")){
gpa = 4.3;
} else if (letter1.equals("A")){
gpa = 4.0;
} else if (letter1.equals("B")){
gpa = 3.0;
} else if (letter1.equals("C")){
gpa = 2.0;
} else if (letter1.equals("D")){
gpa = 1.0;
} else if (letter1.equals("F")){
gpa = 0.0;
} else {
System.out.println("The value is invalid.");
}
if (!letter1.equals("F")){
if(letter2.equals("+") && !letter1.equals("A")) gpa += 0.3;
else if(letter2.equals("-")) gpa -= 0.3;
}
System.out.println("The numerical value is " + gpa + ".");
}
}
最佳答案
出现错误,因为 A+ 以外的字母没有第二个值
A+有两个字母
B 有一个,所以当你试图找到第二个时,它就坏了
C 有一个,所以当你试图找到第二个时,它就会崩溃
D 有一个,所以当你试图找到第二个时,它就会损坏
您想要在检索第二个值之前检查它是否存在。试试这个
String letter2 = "";
grade = scan.nextLine();
letter1 = grade.substring(0,1);
// Check, if there is a second letter, get it.
if (grade.length() >= 2) {
letter2 = grade.substring(1,2);
}
关于java - 我这个程序做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35050874/
我是一名优秀的程序员,十分优秀!