String 클래스의 codePoints() 및 collect() 메서드를 사용하여 문자열을 반전시키는 방법

chohee cha·2023년 10월 14일

Java

목록 보기
8/10
  • 이 방법은 유니코드 코드 포인트를 사용하여 문자열을 반전시킵니다.
  • 이 방법은 유니코드 코드 포인트를 올바르게 처리하므로 다국어 문자열에 대해서도 동작합니다.
  • 예시
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"
  1. codePoints() 메서드를 사용하여 문자열을 유니코드 코드 포인트로 분해한 다음
  2. mapToObj()를 사용하여 각 코드 포인트를 문자열로 변환하고
  3. 이러한 문자열을 StringBuilder로 수집한다.
  4. toString()을 호출하여 StringBuilder를 문자열로 변환한다.
  • .collect(StringBuilder::new, StringBuilder::insert, StringBuilder::append)

    • collect 메서드를 사용하여 StringBuilder에 문자열을 반전시키는 부분입니다.
    • 스트림 요소를 수집(collect)하여 새로운 값을 생성하는 메서드이며, 이 경우 StringBuilder 객체를 생성하고 요소를 삽입(insert)하고 추가(append)하는 작업을 수행한다.
  • StringBuilder::new -> StringBuilder 객체를 생성하는 데 사용

  • StringBuilder::insert -> StringBuilder에 요소를 삽입하는 데 사용 (맨 앞에 삽입. H -> eH -> leH)

  • StringBuilder::append는 StringBuilder에 요소를 추가하는 데 사용 (문자열 마지막에 추가. append 메서드를 사용하여 쌓여진 문자열을 StringBuilder의 끝에 확실하게 추가.)

0개의 댓글