이건 문자열을 일정 길이로 자르는 문제였다.
처음엔 substring으로 자르면 되겠지 싶어서 바로 코드를 짰는데, 마지막 부분이 길이 n보다 짧을 때 처리를 안 해서 테스트 케이스 몇 개가 실패했다.
처음엔 그냥 substring(i, i+n)만 썼는데, 문자열 끝부분에서 인덱스 초과 에러가 나버림.. 그래서 조건문으로 나눠서 처리했다.
for(int i = 0; i < my_str.length(); i += n){
if(i + n < my_str.length()){
list.add(my_str.substring(i, i + n));
} else {
list.add(my_str.substring(i));
}
}
이렇게 풀었는데, ArrayList에 넣고 나중에 배열로 변환하는 게 좀 번거로웠다..
사실 String의 split( )이나 다른 방법을 썼으면 더 간단했을까 하는 생각이 들었다.
그리고 toArray(new String[0]) 이 부분도 처음엔 헷갈렸는데, 배열 크기를 0으로 주는 게 내부적으로 최적화된다는 걸 알게 됐다.
다음엔 문자열 자를 때 경계 조건을 처음부터 꼼꼼히 체크해야겠다..ㅎ
그래도 substring( ) 다루는 데 좀 더 익숙해진 것 같아 뿌듯ㅎㅎ
댓글
댓글 작성은 로그인 후에 가능합니다.