IT/Java
[Java] String / codePointBefore(int index) 사용법 및 예제
hi.anna
2024. 12. 9. 21:09
codePointBefore(int index)
지정한 인덱스 바로 앞에 있는 코드 포인트를 반환하는 메서드입니다.
이 메소드는 유니코드 코드 포인트를 처리하는데 유용하며,
특히 다국어 문자나 이모지와 같이 여러 코드 유닛으로 구성된 문자(surrogate pair)를 다룰 때 유용합니다.
Syntax
java.lang.String
public int codePointBefore(int index)
매개변수
int index
- 지정한 인덱스 바로 앞의 코드 포인트가 반환됨
- 이 인덱스는 1 이상의 값이어야 합니다.
리턴 값
지정한 인덱스 바로 앞에 있는 코드 포인트를 int 타입으로 반
예외
IndexOutOfBoundsException
주어진 인덱스 값이 잘못된 범위에 있을 때 발생
예제.
코드
public class CodePointBeforeExample {
public static void main(String[] args) {
String str = "😊Hello";
// 문자열에서 인덱스 2 바로 앞의 코드 포인트를 가져옵니다.
int codePoint = str.codePointBefore(2);
// 결과 출력
System.out.println("인덱스 2 바로 앞의 코드 포인트는: " + codePoint); // 'H' 앞의 코드 포인트를 반환
System.out.println("인덱스 2 바로 앞의 문자: " + new String(Character.toChars(codePoint))); // 코드 포인트에 해당하는 문자
}
}
결과
인덱스 2 바로 앞의 코드 포인트는: 128522
인덱스 2 바로 앞의 문자: 😊
설명
String str = "😊Hello";
😊는 2개의 코드 유닛으로 구성된 문자입니다.
이모지 😊는 UTF-16 인코딩에서 surrogate pair로 표현됩니다.
따라서, 😊는 두개의 char로 구성됩니다.
따라서, H의 index는 2입니다.
str.codePointBefore(2);
codePointBefore(2)는 😊이모지를 가리키고,
이 이모지의 코드 포인트는 128522입니다.
new String(Character.toChars(codePoint)));
codePoint를 문자열로 변환하여 출력합니다.
반응형