Dro*_*out 2 java validation utf-16
我想验证即将发布的字符串.规则是它们必须是UTF-16及以下.
如何检查字符是否是有效的UTF-16字符?我可以通过一些Java方法或正则表达式来实现吗?
谢谢你的信息
charJava中的任何一个都是有效的UTF-16.但是一系列字符可能无效,即在代理对(http://en.wikipedia.org/wiki/UTF-16)中,较高的代理字符必须跟随较低的代理字符.如果这是你的意思,那么你可以尝试这个功能
static boolean isValidSequence(char[] a) {
for (int i = 0; i < a.length; i++) {
if (Character.isHighSurrogate(a[i])) {
if (i < a.length - 1 && Character.isLowSurrogate(a[i + 1])) {
i++;
} else {
return false;
}
} else if (Character.isLowSurrogate(a[i])) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |