私の目的: Java 文字列に GSM Extended の文字が含まれているかどうかを確認したい。既存のコードは GSM 文字を正常にチェックしますが、'[' や ']' などの GSM 拡張文字をチェックする方法を理解するのに苦労しています。
私のコード:
private static final String GSM_EXTENDED = "\u000c^{}\\[~]|\u20ac";
public static boolean isUnicode(String input) {
return !((input.matches('[' + GSM + "]*")) || (input.matches('[' + GSM_EXTENDED + "]*")));
}
結果:単体テストで ']' が GSM 拡張として認識されず、さらに、GUI から GSM 拡張文字を入力しても、GSM として認識されません。