Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- 인텔리제이
- 서브쿼리
- DDL
- 프레임워크
- SQL
- JSP
- order by
- 김영한
- 코딩테스트
- STS
- select
- AOP
- Model2
- 세션
- 코테
- 서블릿
- Model1
- 메이븐
- 인프런
- MVC
- MVC2
- Join
- 기술 대비
- @RestController
- 뉴렉처
- @Controller
- 자바
- 스프링
- toUpperCase
Archives
- Today
- Total
Heestory
ArrayIndexOutOfBoundsException 예외 발생 원인 본문
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장을 split으로 잘라 배열에 넣은 다음, 각 문자의 길이를 비교하여 긴 단어를 출력하려 했는데 자꾸
ArrayIndexOutOfBoundsException 에러가 발생했다.
처음 작성한 코드
public String solution(String str){
String answer ="";
String[] s = str.split(" ");
// System.out.println(Arrays.toString(s));
// System.out.println("배열 길이값: "+s.length);
// System.out.println("값 확인: " +s[0] );
// System.out.println("값의 길이 확인: "+s[0].length());
for(int i=0;i<s.length;i++){
if(s[i].length() > s[i+1].length()){
answer = s[i];
}
}
return answer;
}
ArrayIndexOutOfBoundsException
:인덱스가 배열의 크기보다 크거나 음수 인덱스에 대한 요청이 있으면 자바는 위의 예외를 발생
for문 이후부터 에러가 발생했는데 원인은
s[i].length > s[i+1].length 에서 i가 1일 경우 s[2]가 없기 때문에 발생한 것..!
그래서 코드 수정
public String solution(String str){
String answer ="";
String[] s = str.split(" ");
int m = Integer.MIN_VALUE; //최소값 선언
for (String x : s){
int len = x.length();
if(len>m) {
m = len; //길이 len이 크면 m 값 변경, 없다면 m값은 계속 정수 최소값으로 진행
answer = x;
}
}
return answer;
}
'개발(~국비) > JAVA' 카테고리의 다른 글
[JAVA]Thread (0) | 2023.04.11 |
---|---|
[JAVA]Future (0) | 2023.04.10 |
[JAVA]subList (0) | 2023.04.10 |
JAVA)배열 출력 하는 방법 (0) | 2022.10.27 |