[이슈해결]Exception in thread java.lang.ArrayIndexOutOfBoundsException: 점(.)사용시 에러 해결방법
💡 핵심 요약 (TL;DR)
Scanner로 사용자로부터 문자열을 입력받아 점(.)을 기준으로 split() 하려고 실행하니 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 런타임에러가 발생했다. * split(".")에서 split("\\.")으로 변경해준다.
문제상황
Scanner로 사용자로부터 문자열을 입력받아 점(.)을 기준으로 split() 하려고 실행하니 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 런타임에러가 발생했다.
1 | public static void main(String[] args) { |
- 콘솔창에 런타임에러발생
1 | 12.123 |
해결
split(".")에서split("\\.")으로 변경해준다.
1 | public static void main(String[] args) { |
원인
- 정규표현식에서
점(.)은 임의의 한 문자(종류를 가리지않지만 \는 넣을 수 없음)를 의미한다. split()과replace()를 사용할 때,점(.)이 정규식으로 적용되어 모든 문자를 “”으로 만들어 버린다.점(.)을점(.)그대로 인식시키기 위해서는\.로 해줘야 한다.- 하지만
\또한 예약어이기 때문에\\로 표시해줘야 한다. - 따라서
\\.을 입력해줘야 원하는.을 출력할 수 있다.

참고
#TIL
[이슈해결]Exception in thread java.lang.ArrayIndexOutOfBoundsException: 점(.)사용시 에러 해결방법