「Java」Character.isSurrogate()でサロゲートペア文字を判定する方法

2020年10月8日

説明
public static boolean isSurrogate(char ch)
指定されたchar値がUnicode サロゲート・コード単位かどうかを判定します。
Javaコード

package com.arkgame.study;

public class IsSurrogateDemo {

      protected static final boolean flgT = true;
      protected static final boolean flgF = false;

      public static boolean strHasSurrogate(String target) {

            for (char cft : target.toCharArray()) {
                  if (Character.isSurrogate(cft)) {
                        return flgT;
                  }
            }
            return flgF;
      }

      public static void main(String[] args) {

            String strA = "abc𣑥def123";
            String strB = "abc-def123";
            if (strHasSurrogate(strA)) {
                  System.out.println("変数Aにサロゲートペア文字があり");
            } else {
                  System.out.println("変数Aにサロゲートペア文字がない");
            }
            if (strHasSurrogate(strB)) {
                  System.out.println("変数Bにサロゲートペア文字があり");
            } else {
                  System.out.println("変数Bにサロゲートペア文字がない");
            }
      }

}

結果
変数Aにサロゲートペア文字があり
変数Bにサロゲートペア文字がない