在java中检测中文字符
使用Java如何检测String是否包含中文字符?
String chineseStr = "已下架" ; if (isChineseString(chineseStr)) { System.out.println("The string contains Chinese characters"); }else{ System.out.println("The string contains Chinese characters"); }
你能帮我解决一下这个问题吗?
现在, Character.isIdeographic(int codepoint)
会告诉代码点是CJKV(中文,日文,韩文和越南文)的表意文字。
更近的是使用Character.UnicodeScript.HAN。
所以:
System.out.println(containsHanScript("xxx已下架xxx")); public static boolean containsHanScript(String s) { for (int i = 0; i < s.length(); ) { int codepoint = s.codePointAt(i); i += Character.charCount(codepoint); if (Character.UnicodeScript.of(codepoint) == Character.UnicodeScript.HAN) { return true; } } return false; }
或者在java 8中:
public static boolean containsHanScript(String s) { return s.codePoints().anyMatch( codepoint -> Character.UnicodeScript.of(codepoint) == Character.UnicodeScript.HAN); }
您可以尝试使用Google API或语言检测API
语言检测API包含简单的演示。 你可以先试试。
- java / swing:剪贴板粘贴
- java.lang.UnsatisfiedLinkError:在java运行的java.libary.path中没有lwjgl
- 用Java Express连接Java
- Crosswalk在java上从java调用js函数
- 如何在MySQL数据库和JPA中使用Spring Boot?
- 为什么/如何得到错误:NoClassDefFoundError:org / springframework / aop / framework / ProxyFactory
- 获取EntityManagerFactory的最佳实践
- Generic Generics:“令牌上的语法错误”扩展“,预期”
- 为什么Java中的实例变量总是私有的?