StringTokenizer의 구분자 문자열은 각 문자를 개별적인 구분자로 취급합니다.
new StringTokenizer(문자열, ", ")는 문자열 안에서 쉼표를 만나도 자르고, 공백을 만나도 자른다.StringTokenizer는 기본적으로 빈 문자열(비어있는 토큰)은 무시하기 때문에, 결과적으로 숫자들만 깔끔하게 가져오게 됩니다입력값이 16,6, 5 12 (쉼표만 있는 경우, 쉼표+공백, 공백만 있는 경우 섞임)일 때:
| 구분자 설정 | 결과 (토큰들) | 설명 |
|---|---|---|
"," | 16, 6, 5 12 | 공백을 구분 못 해서 숫자 앞에 공백이 포함됨 |
" " | 16,, 6,, 5, 12 | 쉼표를 구분 못 해서 숫자 뒤에 쉼표가 붙음 |
", " | 16, 6, 5, 12 | 쉼표와 공백 모두 제거하고 숫자만 추출 |
만약 "쉼표+공백"이 꼭 붙어있는 경우에만 자르고 싶다면 split 사용
String[] parts = br.readLine().split(", ");
my_string.charAt(index_list[i]) : Java에서 String은 배열이 아니므로 반드시 .charAt() 메소드 사용
String[] 배열이 아니라 하나의 String이어야 합니다. 여러 문자를 합칠 때는 StringBuilder 사용
StringBuffer는 여러 사람이 동시에 하나의 일기를 쓰는 상황을 대비해 "누가 쓰고 있으면 나머지는 기다려!"라고 문을 잠그는 기능(동기화)이 들어있습니다. 이 과정에서 오버헤드(비용)가 발생해 속도가 느려집니다.StringBuilder는 혼자서 일기를 쓰는 상황이라 문을 잠글 필요가 없습니다. 그래서 거추장스러운 절차 없이 훨씬 빠르게 동작합니다.