提问人:ccpizza 提问时间:8/9/2023 最后编辑:ccpizza 更新时间:8/10/2023 访问量:226
如何检测中文文本是否包含简体字或繁体字?[复制]
How to detect if Chinese text contains simplified or traditional characters? [duplicate]
问:
在 Java 中,检测中文 Unicode 字符串是否包含中文简体字或繁体字的可靠方法是什么?假设在默认情况下,简化范围和传统范围通用的字符将被视为简化字符。
理想情况下,应按特定的 Unicode 字符范围检查正则表达式匹配。这些范围是否被记录和定义,这种方法是否可靠?
更新
相关问题:
总结
答:
0赞
M. Usman
8/9/2023
#1
public class ChineseCharacterDetector {
public static boolean containsSimplifiedChinese(String input) {
for (char c : input.toCharArray()) {
if (isSimplifiedChinese(c)) {
return true;
}
}
return false;
}
public static boolean containsTraditionalChinese(String input) {
for (char c : input.toCharArray()) {
if (isTraditionalChinese(c)) {
return true;
}
}
return false;
}
private static boolean isSimplifiedChinese(char c) {
// Common simplified Chinese character range
return (c >= '\u4E00' && c <= '\u9FFF');
}
private static boolean isTraditionalChinese(char c) {
// Common traditional Chinese character ranges
return (c >= '\u4E00' && c <= '\u9FFF') || // Common characters
(c >= '\u3400' && c <= '\u4DBF') || // Extended-A
(c >= '\u20000' && c <= '\u2A6DF'); // Extended-B
}
public static void main(String[] args) {
String input = "你好,世界!Hello, 世界!";
if (containsSimplifiedChinese(input)) {
System.out.println("Contains Simplified Chinese characters");
} else if (containsTraditionalChinese(input)) {
System.out.println("Contains Traditional Chinese characters");
} else {
System.out.println("Contains neither Simplified nor Traditional Chinese characters");
}
}
}
isSimplifiedChinese 函数考虑常见简体中文范围中的字符,而 isTraditionalChinese 函数考虑典型繁体中文范围中的字符以及某些扩展范围。函数 containsSimplifiedChinese 和 containsTraditionalChinese 循环访问输入文本,查找指定范围内的字符。
下一个:将 C 变量传递给 php
评论