게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
(java) 배열 범위 에러 이유를 모르겠습니다.
게시물ID : programmer_5754짧은주소 복사하기
작성자 : semitan
추천 : 0
조회수 : 625회
댓글수 : 6개
등록시간 : 2014/10/03 13:06:02
옵션
  • 본인삭제금지
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;
}

이리 저리 고민해보고 있는데 원인을 잘 모르겠습니다.
조언 부탁드립니다
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호