繁体   English   中英

如何检查Java字符串是否包含GSM扩展字符(非Unicode)

[英]How to check whether a Java String contains GSM Extended Characters (non Unicode)

我的目标:我想检查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。

在正则表达式的方括号内,连字符是特殊字符,因此您需要在GSM字符串中将其转义为"\\\\-"

GSM_EXTENDED字符串中的右括号(“]”)终止括号中的字符类,因此您需要将其转义为"\\\\]"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM