이번 편의 목표: 문자열을 비교하고, 공백을 제거하며, 필요한 부분만 잘라 냅니다.

책 제목은 String입니다. 입력에는 앞뒤 공백이 섞일 수 있고, 같은 글자인지 확인해야 할 때도 있습니다.

비교와 정리

Java
public class TitleClean {
    public static void main(String[] args) {
        String raw = "  개미  ";
        String title = raw.trim();
        System.out.println(title.length());
        System.out.println(title.equals("개미"));
        System.out.println(title.equals("개비"));
        System.out.println(raw == title);
    }
}

trim 뒤의 길이는 2입니다. equals 결과는 true와 false입니다. ==는 문자열 내용이 아니라 같은 객체인지를 볼 수 있으므로 제목 비교에 쓰지 않습니다.

자르기와 포함

Java
String shelfCode = "A-120";
System.out.println(shelfCode.substring(0, 1));
System.out.println(shelfCode.substring(2));
System.out.println(shelfCode.contains("-"));
System.out.println(shelfCode.startsWith("A"));

출력은 A, 120, true, true입니다. substring(0, 1)은 시작은 포함하고 끝은 포함하지 않습니다. 한글도 한 글자씩 다룰 수 있지만, 자모 단위 분리까지는 가지 않습니다.

문자열에 다른 문자열을 이어 붙이면 새 문자열이 만들어집니다. 원래 변수는 다시 대입하기 전에는 바뀌지 않습니다.

Java
String title = "개미";
title.concat(" 개정판");
System.out.println(title);
title = title + " 개정판";
System.out.println(title);

첫 출력은 개미이고, 둘째는 개미 개정판입니다. concat의 결과를 버리지 말고 필요할 때만 대입합니다.

직접 해 보기

" 자바 입문 "에서 앞뒤 공백을 제거한 뒤, 결과가 자바 입문과 같은지 true를 출력하세요.

해설

Java
public class TrimEquals {
    public static void main(String[] args) {
        String raw = "  자바 입문  ";
        String title = raw.trim();
        System.out.println(title.equals("자바 입문"));
    }
}

출력은 true입니다.