Cuando trabaja en proyectos, a menudo se encuentra con algunos problemas que necesita para juzgar si los personajes son chinos, por lo que ha recopilado fragmentos de código para juzgar los caracteres chinos. Aquí hay algo de intercambio para su referencia.
Publiqué el código directamente, con comentarios detallados.
paquete com.coder4j.main; import java.util.regex.pattern;/*** Java juzga caracteres chinos** @author chinaxiang* @date 2015-08-11 **/clase pública checkChinese {public static void main (string [] args) {// puro inglés string s1 = = "Hola, Tom.!@#$%^&*() _+-= {} | []; ': // = "╃"; cadena s8 = "╂"; // cadena tradicional china s9 = "antigua"; // 1 Use el rango de caracteres para determinar si System.out.println ("S1 contiene chino:" + tiene chinobyrange (s1)); // falsesystem.out.println ("S2 contiene chino:" + tiene chinobyrange (s2)); //system.println (s2 "S2" S2 "S3 S3TRESTLN (S3 TUSTRESS. contains Chinese: " + has ChineseByRange(s3));// trueSystem.out.println("s4 contains Chinese: " + has ChineseByRange(s4));// falseSystem.out.println("s5 contains Chinese: " + has ChineseByRange(s5));// falseSystem.out.println("s6 contains Chinese: " + has ChineseByRange(s6));// falseSystem.out.println("s7 contains Chinese: " + has ChineseByRange(s7));// falseSystem.out.println("s8 contains Chinese: " + has ChineseByRange(s8));// falseSystem.out.println("s9 contains Chinese: " + has ChineseByRange(s9));// truesystem.out.println ("-------------------"); System.out.println ("S1 es todo chino:" + es chinobyrange (S1))); // falsesystem.out.println ("S2 es todo chino:" + es chinobyrange (s2)); // truesystem.out.println ("S3 es todo chino:" + ischinoByrange (S3)); // falso chino Punctoration no dentro del rango de rango no es todo dentro del rango de rango dentro del rango no es todo dentro del rango de rango no es todo dentro del rango es no dentro del rango de los chinos no es todo dentro del rango es no dentro del rango. System.out.println ("S4 es todo chino:" + ischinesesebyrange (s4)); // falsesystem.out.println ("S5 es todo chino:" + ischinesesebyrange (s5)); // falsesystem.out.println ("S6 es todo chino:" + ischinesebeyrange (s6)); falsesystem.out.println ("S7 es todo chino:" + ischineseSebyRange (S7)); // falsesystem.out.println ("S8 es todo chino:" + ischineseBeyRange (s8)); // falsesystem.out.println ("S9 es todo chino:" truesystem.out.println ("---------------"); // 2 Use el juicio regular del rango de caracteres (el resultado es el mismo que 1) System.out.println ("S1 contiene chino:" + tiene chinobyreg (S1)); // falsesystem.println ("S2 contiene chino:" + Haschinesebyreg (s2)); //////////////poco truesystem.out.println ("S3 contiene chino:" + tiene chinobyreg (s3))); // truesystem.out.println ("S4 contiene chino:" + tiene chinobyreg (s4)); // falsesystem.out.println ("S5 contiene chino:" + chinobybyreg (s5));// falsesystem.out.out (contiene S6 S6 S6: " + tiene chino (s5));// falsesystem. Chino: " + tiene chinobyreg (s6))); // falsesystem.out.println (" S7 contiene chino: " + tiene chinobyreg (s7))); // falsesystem.out.println (" S8 contiene chino: " + tiene chinobybyreg (s8); // falsystem.out.println (" s9 contiene: " + ha chinog (s8)); // falsystem.out.println (" S9 contiene: " + ha (s9); truesystem.out.println ("-------------------"); System.out.println ("S1 es todo chino:" + es chinobyreg (S1))); // falsesystem.out.println ("S2 es todo chino:" + es chinobyreg (s2)); // truesystem.out.println ("S3 es todo chino:" + ischinesbyreg (s3)); // falsos de pancationes chino no está dentro del rango de rango dentro del rango del rango del rango dentro del rango del rango del rango no está dentro de System.out.println ("S4 es todo chino:" + ischinesesebyreg (S4)); // falsesystem.out.println ("S5 es todo chino:" + ischinesesyreg (s5)); // falsesystem.println ("S6 es todo chino:" + ischinoByreg (s6)); // falsesystem.out.println ("S7 es todo chino:" + ischinesesebyreg (s7)); // falsesystem.out.println ("S8 es todo chino:" + ischinesesebyreg (s8)); // falsesystem.out.println ("S9 es todo chino:" + ischinesebeyreg (s9))); truesystem.out.println ("----------------"); // 3 Use el conjunto de caracteres CJK para determinar si System.out.println ("S1 contiene chino:" + Haschinese (S1))); // falsesystem.out.println ("S2 contiene:" + Haschinese (s2)); // sumesystem.out.out.println (s3 contiene ("" contiene: " + haschinese (s2)); // sumesystem.out.out.println (s3 contiene (" "contiene (" "" s2)); " + tiene chino (S3)); // truesystem.out.println (" S4 contiene chino: " + tiene chino (s4))); // falsesystem.out.println (" S5 contiene chino: " + tiene chino (s5)); // falsesystem.out.println (" S6 contiene chino: " + ha chino (s6)); falsesystem.out.println ("S7 contiene chino:" + tiene chino (s7)); // falsesystem.out.println ("S8 contiene chino:" + haschino (s8)); // falsesystem.out.println ("S9 contiene chino:" + haschinos (s9)); // truesystem.out.println ("-------------------"); System.out.println ("S1 es todo chino:" + ischino (S1)); // falsesystem.out.println ("S2 es todo chino:" + ischino (s2)); // truesystem.out.println ("s3 es todo chino:" + " + ischino (s2)); ischinese (S3)); // La verdadera puntuación china también se incluye en System.out.println ("S4 es todo chino:" + ischino (S4))); // falsesystem.out.println ("S5 es chino:" + ischino (s5)); // falsystem.out.println ("s6 es todo:" + " +" + " +" isChinese(s6));// falseSystem.out.println("s7 is all Chinese: " + isChinese(s7));// falseSystem.out.println("s8 is all Chinese: " + isChinese(s8));// falseSystem.out.println("s9 is all Chinese: " + isChinese(s9));// verdadero}/*** Si contiene caracteres chinos <br>* contiene puntuación china <br>** @param str* @return*/public static boolean tiene chino (string str) {if (str == null) {return false;} char [] ch = str.toCharray (); for (char c: ch) {if (ischinese (c)) {return n. Todos los caracteres chinos <br>* contienen puntuación china <br>** @param str* @return*/public static boolean ischinese (string str) {if (str == null) {return false;} char [] ch = str.toCharArray (); for (char c: ch) {if (! ischinese (c)) {return false;}}} return;}/}/* l} El personaje <br>* contiene puntuación china <br>** @param c* @return*/private static boolean ischinese (char c) {caracteres.unicodeBlock ub = caracteres.unicodeBlock.of (c); if (ub == caracteres.unicodeBlock.cjk_unified_ideographs) {return true;} if (ub === === Caracteres Caracteres.unicodeBlock.cjk_unified_ideographs_extension_b) {return true;} else if (ub == caracteres Caracteres.unicodeBlock.general_punctuation) {return true;} else if (ub == caracteres.unicodeBlock.halfwidth_and_fullwidth_forms) {return true;} return false;}/*** si los caracteres chinos están incluidos <br>* juez basado en el rango codificador de los caracteres chinos <BR>* CJK unified China (no incluyen los caracteres chinos, '' ',' '' '' '' '' '' '' '' '' '' '' 'suyan,' '' '' '' '' '' '', ! ¥, etc.) <br>** @param str* @return*/public static boolean tiene chinobyreg (string str) {if (str == null) {return false;} patrón patrón = patrón.c.compile Rango de caracteres chinos <br>* CJK Unificados caracteres chinos (sin incluir chino, "《》 ()" '' ",! ¥ y otros símbolos) <br>** @param str* @return*/public static boolean ischineseBeyreg (string str) {if (str == null) {return false;} patrones = patrones.compile (" [// u4e00-// u9fbb; patrón.matcher (str) .matches ();}/*** Si los caracteres chinos están incluidos <br>* juez basado en el rango de codificación de caracteres chinos <br>* cjk unificados caracteres chinos (sin incluir chino, "《》 ()" '' ",! ¥ y otros símbolos) <br>** @param str* @return*/public static boolean (stri -str) ¥ ¥ ¥ ¥ ¥ {@param) falso;} char [] ch = str.toCarArray (); for (char c: ch) {if (c> = 0x4e00 && c <= 0x9fbf) {return true;} return false;}/*** Si todos los caracteres chinos son caracteres chinos <br>* Juez basado en la gama de encodcóresis de los caracteres chinos <BR>* CJK unificados caracteres chinos (no incluyendo los caracteres chinos, "(). etc.) <br>** @param str* @return*/public static boolean ischineseSebyRange (string str) {if (str == null) {return false;} char [] ch = str.tochararray (); for (char c: ch) {if (c <0x4e00 || c> 0x9fbf) {return false;}} nthSi solo juzga si es chino sin juzgar la puntuación china, se recomienda utilizar la coincidencia regular, lo que puede ser más eficiente.
El contenido del código anterior le presenta el código de ejemplo de Java para juzgar a los personajes como chino (súper útil), y espero que sea útil para usted.