のインスタンスがありますjava.lang.CharSequence
。このインスタンスがUnicode スカラー値のシーケンスであるかどうか (つまり、インスタンスが UTF-16 エンコード形式であるかどうか) を判断する必要があります。の保証にもかかわらず、java.lang.String
Java 文字列は必ずしも UTF-16 エンコーディング形式であるとは限りません (少なくとも最新のUnicode 仕様、現在は 6.2によるとは限りません) 。(ただし、Java 文字列はUnicode 16 ビット文字列です。)
これには、次のようないくつかの明白な方法があります。
- シーケンスのコード ポイントを反復処理し、それぞれを Unicode スカラー値として明示的に検証します。
- 正規表現を使用して、孤立したサロゲート コード ポイントを検索します。
- エンコード エラーを報告する文字セット エンコーダーを介して文字シーケンスをパイプ処理します。
ただし、このようなものはライブラリ関数として既に存在するはずです。標準APIで見つけることができません。私はそれを見逃していますか、それとも実装する必要がありますか?