더북(TheBook)

이때 endIndexstartIndex + length이지만, 이것이 문자열 범위 밖이라면 문자열의 끝까지 정상적으로 잘릴 수 있도록 다음과 같이 작성합니다.

for (int startIndex = 0; startIndex < source.length(); startIndex += length) {
    int endIndex = startIndex + length;
    if (endIndex > source.length()) endIndex = source.length();
    // 문자열을 startIndex부터 endIndex까지 잘라 tokens 리스트에 추가
}

이제 실제로 문자열을 잘라 tokens 리스트에 추가합니다.

for (int startIndex = 0; startIndex < source.length(); startIndex += length) {
    int endIndex = startIndex + length;
    if (endIndex > source.length()) endIndex = source.length();
    tokens.add(source.substring(startIndex, endIndex));
}

이렇게 완성된 split() 메서드를 사용하여 compress() 메서드에서는 tokens 리스트를 만들고, 문자열을 구성할 StringBuilder 객체를 생성합니다.

private int compress(String source, int length) {
    StringBuilder builder = new StringBuilder();
    for (String token : split(source, length)) {
        // 압축 문자열 구성
    }

    return builder.length();
}

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.