rlaxodn0320   1년 전

처음 시작을 공백으로 하지 않으면 잘 작동하는데

(t s s s) -> 4

공백이 들어가는 순간

( t s s s) -> String index out of range: 0

이 뜹니다

혹시나 해서

import java.io.*;

public class Main {
      public static void main(String args[]) {
      String x = " ";
      System.out.println(15);
      System.out.println(x);
      System.out.println(y);
      System.out.println(15);
      if(x.charAt(0) == (char) 32) {
         System.out.println(22);
      }
   }
}

이렇게 따로 실행 해 봤을 때도 22가 잘 출력이 되는데

어느 부분이 문제인지 알 수 있을까요

yup0927   1년 전

" t s s s" 같은 경우가 입력으로 주어진다면 8번 줄의 split이후 arr에는

{"", "t", "s", "s", "s"}와 같은 형식으로 저장됩니다.

이후 13번 줄에서 arr[0].charAt(0)에서 arr[0]은 빈 문자열 ("")을 갖고 있고, 이 문자열의 0번째 인덱스에 접근하려고 하니 인덱스 에러가 발생합니다.

위에 적어두신 코드는 " " (스페이스 한 칸)와 (char) 32를 비교하기 때문에 22가 출력이 되지만, 아래의 코드 같은 경우 "" (빈 문자열)의 0번째 인덱스에 접근하려고 하기 때문에 에러가 발생합니다.

rlaxodn0320   1년 전

아하..! 감사합니다

댓글을 작성하려면 로그인해야 합니다.