String 관련 메소드
* String.length() : 문자의 개수
* String.concat() : 문자열 연결 → 문자열(String)은 변경불가(immutable)이기 때문에 메소드를 수행해도 원본이 변경되지 않는다.
* String.charAt() : 문자열 안에 특정위치(index)의 문자 리턴, 인덱스는 0부터 시작
* String.indexOf() : 문자열 안에서 특정 문자(char)의 위치(index) 리턴, 발견 못하면 -1 리턴
* String.toUpperCase() : 대문자로 변환
* String.toLowerCase() : 소문자로 변환
* String.startWith() : 문자열이 주어진 prefix 문자열로 시작하는지 여부를 true, false로 리턴
* String.split(regex) : 문자열을 주어진 문자열로 쪼개어 String[] 리턴
* String.join() : 문자열들, 문바열 배열을 하나의 문자열로 합친다.
* String.substring(beginIndex, endIndex) : 문자열의 일부분 추출 beginIndex ~ endIndex 직전까지
* String.trim() : 좌우의 여백 제거
* String.replace(target, replacement) : 문자열 치환 target → replacement
* String.replaceAll(target, replacement) : 매칭되는것을 전부 치환
* String.replaceFirst(target, replacement) : 첫 매칭만 치환
* String.compareTo() : 두 문자열의 문자코드량을 비교, 유니코드 값을 비교한다. → 동일하면 0을 리턴
StringBuffer, StringBuilder
: String 클래스는 immutable 클래스이고, StringBuffer, StringBuilder는 mutable 클래스이다.
* StringBuffer : Java ver 1.0부터 있던 클래스이며, 쓰레드에 안전(thread-safe)하지만 속도가 느리다.
* StringBuilder : Java 5부터 생긴 클래스이며 쓰레드에 안전하지 않다(thread-unsafe). 하지만 속도가 빠르다.
* StringBuffer.append(data) : 데이터를 문자열 끝에 추가한다.
* StringBuffer.delete(start, end) : start에서 end까지의 문자열 삭제
* StringBuffer.deleteCharAt() : 해당 인덱스 문자열 삭제
* StringBuffer.insert(offset, data) : offset 위치에 data를 삽입한다.
* StringBuffer.replace(start, end, str) : start에서 end까지의 문자열을 str로 치환한다.
* StringBuffer.reverse() : 문자열 역순
StringTokenizer 클래스
ex) StringTokenizer tokenizer = new StringTokenizer(str, ":");
* token ? : "규칙"에 의해 구분된 더 이상 나눌 수 없는 문자요소(문자열)
* tokenizer.countTokens() : 토큰 개수
* tokenizer.hasMoreTokens() : 더 뽑아낼 토큰이 있는지 true,false 리턴
* tokenizer.nextToken() : 토큰 뽑아내기