String original = "Hello, World!";
String reversed = original
.codePoints()
.mapToObj(cp -> String.valueOf((char) cp))
.collect(StringBuilder::new, StringBuilder::insert, StringBuilder::append)
.toString();
System.out.println(reversed); // 출력: "!dlroW ,olleH"
.collect(StringBuilder::new, StringBuilder::insert, StringBuilder::append)
StringBuilder::new -> StringBuilder 객체를 생성하는 데 사용
StringBuilder::insert -> StringBuilder에 요소를 삽입하는 데 사용 (맨 앞에 삽입. H -> eH -> leH)
StringBuilder::append는 StringBuilder에 요소를 추가하는 데 사용 (문자열 마지막에 추가. append 메서드를 사용하여 쌓여진 문자열을 StringBuilder의 끝에 확실하게 추가.)