text는 텍스트 파일에 이미 저장되어 있고 input은 키보드로 입력받는 문자열입니다.
그 둘을 비교하는 함수인데요
아래 함수를 실행하면 문자열이 2자 이상인 경우는 문제가 없는데 1개만 입력하는 경우
java.lang.ArrayIndexOutOfBoundsException 가 뜹니다.
예를 들면 ab를 입력하면 정상적으로 작동하고
a만 입력하면 에러가 발생합니다.
더 이상한건 아래 소문자를 대문자로 변경하는 if문이 없으면 에러가 뜨지 않고요
public static boolean stringcheck(char[] text, char[] input) {
// 입력 받은 문자가 소문자라면 대문자로 변경 이 부분을 삭제하면 정상 작동 합니다.
if ('a' <= input[0] && 'z' >= input[0]) {
input[0] = (char) (input[0] - 32);
}
// 비교하는 반복문
for (int i = 0; i < 4; i++) {
if (text[i] != input[i]) { //에러가 발생하는 부분
return false;
}
}
return true;
}
이리 저리 고민해보고 있는데 원인을 잘 모르겠습니다.
조언 부탁드립니다