gpt4 book ai didi

java - 我收到如下错误消息 : Exception in thread "main" java. lang.StringIndexOutOfBoundsException: String index out of range: 0

转载 作者:行者123 更新时间:2023-12-01 18:51:58 25 4
gpt4 key购买 nike

我收到如下错误消息:线程“main”中出现异常

java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at emp.MainClass.main(MainClass.java:52)

使用下面的代码,如何缓解这个问题?

public class MainClass {
//main class
public static void main(String[] args){
// variable

String input;


boolean salaryError = true;
boolean dependentError = true;
boolean nameError = true;
boolean charError = true;

Employee emp1 = new Employee();
displayDivider("EMPLOYEE INFORMATION");


do{
input = getInput(" First Name");
nameError = nameValidate(input);
if(!nameError){
JOptionPane.showMessageDialog(null,"Incorrect Input. Please Try Again!");
}
}while(!nameError);
emp1.setfirstName(input);
do{
input = getInput(" Last Name");
nameError =nameValidate(input);
if(!nameError){
JOptionPane.showMessageDialog(null,"Incorrect Input. Please Try Again!");
}
}while(!nameError);
emp1.setlastName(input);
do{

input = getInput(" Gender: M or F");

charError = characterChecker(input.charAt(0));
if(!charError){
JOptionPane.showMessageDialog(null,"Incorrect Input. Please Try Again!");
}
}while(!charError);

char g = input.charAt(0);
emp1.setgender(g);// validates use of M or F for gender

do{
input = getInput(" number of dependents");
dependentError = integerChecker(input);
if(!dependentError){
JOptionPane.showMessageDialog(null,"Incorrect Input. Please Try Again!");
}
}while(!dependentError);
emp1.setdependents(Integer.parseInt(input));

do{
input = getInput(" annual salary");
salaryError = doubleChecker(input);
if(!salaryError){
JOptionPane.showMessageDialog(null,"Incorrect Input. Please Try Again!");
}
} while(!salaryError);
emp1.setannualSalary(Double.parseDouble(input));

emp1.displayEmployee();//displays data for emp1

Employee emp2 = new Employee("Speed","Racer",'M',1,500000.00);
displayDivider("EMPLOYEE INFORMATION");
emp2.displayEmployee();// displays data for emp2

terminateApplication(); //terminates application

System.exit(0);//exits program

}//end of main

// gets Input information
public static String getInput(String data)
{
String input = "";
input = javax.swing.JOptionPane.showInputDialog(null,"Enter your " + data);
return input;
}// end getInput information

// The display divider between employees
public static void displayDivider(String outputLab)
{
System.out.println("********" + outputLab + "********");
}// end display divider

// Terminates the application
public static void terminateApplication()
{ javax.swing.JOptionPane.showMessageDialog(null,"Thanks for the input!");

}// end terminateApplication
public static boolean doubleChecker(String inStr){
boolean outBool = true;
double tmpDbl = 0.0;
try{
tmpDbl = Double.parseDouble(inStr);
if(tmpDbl <= 0)
throw new IllegalArgumentException();
}
catch (Exception e){

outBool = false;
}
return outBool;
}

public static boolean integerChecker(String intStr){
boolean outBool = true;
int tmpInt = 0;
try{
tmpInt = Integer.parseInt(intStr);
if(tmpInt <= 0)
throw new IllegalArgumentException();
}
catch (Exception e){

outBool = false;
}
return outBool;
}

public static boolean nameValidate(String str){
for(char ch : str.toCharArray()){
if(!Character.isDigit(ch)){
return true;
}
}
return false;
}
public static boolean characterChecker(char gen){
boolean outBool = true;

try{

if(!( gen ==( 'M') || gen ==('F')))
throw new IllegalArgumentException();
}
catch (Exception e){

outBool = false;
}
return outBool;
}
}//end of Main Class

最佳答案

您的字符串长度为 0。在访问其元素之前,请确保 string.length() > 0。问题出在异常表明问题所在的行。

关于java - 我收到如下错误消息 : Exception in thread "main" java. lang.StringIndexOutOfBoundsException: String index out of range: 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15594850/

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