우선, 내 코드의 문제가있는 부분은 다음과 같습니다.Java - StringIndexOutOfBoundsException
public static void main(String[] args){
Passenger gokhan=new Passenger("Gokhan","Istanbul","xxx","254651");
System.out.println(gokhan.password);
}
그래서, 내가 문제가 여객 클래스에서 생각 :이 매우 기본적인 클래스
public Passenger(String Name, String adress, String number, String password){
count++;
accId+=count;
this.Name=Name;
this.adress=adress;
this.number=number;
if(checkPw(password)==true){
this.password=password;
}
}
private boolean checkPw(String password){
int length;
length = password.length();
if(length != 6){
return false;
}
else if(password.charAt(0)==0){
return false;
}
else {
for (int i = 0; i < password.length();i++){
if((password.charAt(i))==(password.charAt(i+1))){
return false;
}
}
}
return true;
}
TestClass에 있습니다. 수업 시간에 처음으로 수업을 들었을 때 (if (checkPw (password) == true) 부분). 테스트 클래스에서는 매우 명확하게 보이며이 오류가 나타나지 않을 것이라고 생각하지 않습니다. 어떻게이 메시지를 피할 수 있습니까?
전체 오류 :
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.charAt(String.java:658)
at project1.Passenger.checkPw(Passenger.java:45)
at project1.Passenger.<init>(Passenger.java:27)
at project1.testClass.main(testClass.java:11)
자바 결과 : 1