【发布时间】:2013-08-21 18:04:59
【问题描述】:
我有这个问题,当我输入我的第一个输入时,程序崩溃并且我得到了
字符串索引超出范围:0
我已经在别处寻找并试图找出我的错误,但我发现了不同的问题,这些问题不是我所遇到的。谁能告诉我哪里出错了?
感谢您的帮助,代码如下:
import java.util.Scanner;
public class Assignment1Q2 {
public static void main(String[] args) {
System.out.println("Thank you for your call,\nPlease take some time to answer a few questions");
collectData();
}//end of main
public static void collectData() {
Scanner userInput = new Scanner(System.in);
int age;
char gender;
char show;
int over30MY = 0, over30FY = 0, under30MY = 0, under30FY = 0;
int over30MN = 0, over30FN = 0, under30MN = 0, under30FN = 0;
System.out.println("\nWhat is your age?\n");
age = userInput.nextInt();
System.out.println("Male or Female (Enter M or Y)");
gender = userInput.nextLine().charAt(0);
gender = Character.toLowerCase(gender);
System.out.println("Do you watch the show regularly? (Enter Y or N)");
show = userInput.nextLine().charAt(0);
show = Character.toLowerCase(show);
if((age > 30) && (gender == 'm') && (show == 'y')) {
over30MY++;
}
else if((age > 30) && (gender == 'f') && (show == 'y')) {
over30FY++;
}
else if((age < 30) && (gender == 'm') && (show == 'y')) {
under30MY++;
}
else if((age < 30) && (gender == 'f') && (show == 'y')) {
under30FY++;
}
else if((age > 30) && (gender == 'm') && (show == 'n')) {
over30MN++;
}
else if((age > 30) && (gender == 'f') && (show == 'n')) {
over30FN++;
}
else if((age < 30) && (gender == 'm') && (show == 'n')) {
under30MN++;
}
else if((age < 30) && (gender == 'f') && (show == 'n')) {
under30FN++;
}//end of if else
}//end of collectData
}// end of class
【问题讨论】:
-
为什么,哦,为什么人们认为堆栈跟踪不重要?虽然,在这种情况下,只有 2 种可能性....不过!
-
@ingo,这是你真正告诉他的可能性是什么,以及为什么堆栈跟踪很重要,而不是发布你完全没有帮助的评论。
-
@OP,至少在堆栈跟踪的一部分中添加实际错误是什么以及它发生在哪一行确实很有帮助。