プロジェクトに取り組んでいるとき、キャラクターが中国人であるかどうかを判断するために必要ないくつかの問題に遭遇することが多いため、漢字を審査するためのコードスニペットを収集しました。参照のための共有を次に示します。
詳細なコメントが入ったコードを直接投稿しました。
パッケージcom.coder4j.main; Import java.util.regex.pattern;/*** java Judges漢字** @author chinaxiang* @date 2015-08-11 **/public class checkchinese {public static void main(string [] args){//純粋な英語S1 = 「こんにちは、トム!@#$%^&*()_+ - = {} | []; ':/"?"; //純粋な中国人(中国語の句読点を除く)弦s2 = "hello、china"。 "": "" "';()[]! = "╃"; string s8 = "╂"; //従来の中国語文字列s9 = "old"; // 1 system.out.println( "s1が中国語を含むかどうかを決定するかどうかを判断します。中国語を含む: " + has hasingbyrange(s3)); // truesystem.out.println(" s4が中国語を含む: " + has hashbyrange(s4)); shirenbyrange(s6)); // falsesystem.out.println( "s7が中国語を含む:" + has hasinsyrange(s7)); // falsesystem.out.println( "s8は中国語を含む:" + hase has has has has a has a falsesystem.out.out.println truesystem.out.println( "----------------"); System.out.println( "s1はすべて中国人:" +は中国人の航空(s1)); // falsesystem.out.println( "s2はすべて中国人:" +は中国語range(s2)); System.out.println( "S4はすべて中国人:" + IschineseByrange(s4)); // falsesystem.out.println( "s5はすべて中国人:" + ischinesebyrange(s5)); falsesystem.out.println( "s7はすべて中国人:" + inschinesebyrange(s7)); // falsesystem.out.println( "s8はすべて中国人:" + inschinesemyrange(s8)); Truesystem.out.println( "--------------"); // 2文字範囲の通常の判断(結果は1と同じ)System.out.println( "S1が中国語を含む:" + has has has out.out.println( "s2は中国語を含む:" + haschinebygreg(s2);中国語を含む: " + has hasin hashbyreg(s3)); // truesystem.out.println(" s4には中国語が含まれています: " + has has has have has has has has has has aut.out.println(" s5 contas中国人: " falsesystem.out.println( "s7は中国語を含む:" + has hasinbyreg(s7)); // falsesystem.out.println( "s8が中国語を含む:" + has hase system.out.println( "s9 contains中国人:" truesystem.out.println( "----------------"); System.out.println( "s1はすべて中国人:" +は中国人(s1)); // falsesystem.out.println( "s2はすべて中国人:" + is bishnybyreg(s2)); // truesystem.out.println( "s3はすべて中国人:" System.out.println( "S4はすべて中国人:" + Ischinesebyreg(s4)); // falsesystem.out.println( "s5はすべて中国人:" + ischinesemyreg(s5));すべて中国人: " + Ischinesebyreg(s7)); // falsesystem.out.println(" s8はすべて中国人: " + ischinesebyreg(s8)); // falsesystem.out.println(" s9はすべて中国人: " + ischinesebyreg(s9)); cjk文字System.out.println( "S1に中国語が含まれているかどうか:" + haschinese(s1)); // falsesystem.out.println( "s2が中国語を含む:" + haschinese(s2));中国語を含む: " + has has binish(s4)); // falsesystem.out.println(" s5が中国語を含む: " + has has has have中国人(s5)); faceSystem.out.println( "s8に中国語が含まれます:" + haschinese(s8)); // falsesystem.out.println( "s9が中国語を含む:" + haschinese(s9)); falsesystem.out.println( "s2はすべて中国語です:" + ischinese(s2)); // truesystem.out.println( "s3はすべて中国人:" + inschinese(s3)); faceSystem.out.println( "s5はすべて中国人:" + inschinese(s5)); // falsesystem.out.println( "s6はすべて中国人:" + inschinese(s6)); " + ischinese(s8)); // falsesystem.out.println(" s9はすべて中国人: " + ischinese(s9)); // true}/***漢字が含まれているかどうか<br>*** @param str* @return* @return*/public static boolean(string str) str.tochararray(); for(char c:ch){if(ischinese(c)){return true;}} return false;}/***それがすべての漢字であるかどうか<br>* @param str* @param str* @return* @return*/public static boolean ischinese(str = null){(str = = null) str.tochararray(); for(char c:ch){if(!ischinese(c)){return false;}} return true;}/***それが漢字であるかどうか<br>* @param c* @return*/private static boolean ischinese(char c) (ub == character.unicodeblock.cjk_unified_ideographs){return true;} else if(ub == character.unicodeblock.cjk_compatibility_ideographs){return true;} charached.unicodeblock.cjk_unifided_ideagraphs_extension_a){return true;} else if(ub == character.unicodeblock.cjk_unified_ideographs_extension_b){return true;} else if(ub == character.unicodeblock.cjk_unifographs_extension_x _c Chariture.unicodeBlock.cjk_unifided_ideagraphs_extension_d){return true;} else if(ub == character.unicodeblock.general_punctuation){return true;} else if(ub == charatele.unicodeblock.halfwidth_and_and_fulwidth_fuls_forms)中国語文字のエンコーディング範囲に基づく<br>*裁判官<br>* cjk統一された漢字(中国語、《》() "''"、!¥などを含めない)<br>** @param str* @return*/public static boolean has hashingbyreg(string str){if(str == null){return fals;}パターンパターンパターンpattern.compile( "[// u4e00- // u9fbf]+"); return pattern.matcher(str).find();}/***すべての漢字が漢字であるかどうか<br>*漢字のエンコーディング範囲<br>* cjk統一された漢字(中国人文字を含むことなく」 "" " static boolean ischinesebyreg(string str){if(str == null){return false;} pattern pattern = pattern.compile( "[// u4e00- // u9fbf]+"); return pattern.matcher(str).matches();}/***中国語の文字を含む中国文字に基づいた<br>* cjkの範囲に基づいている<br> "《》()" '' '"、!¥およびその他のシンボル)<br>** @param str* @return*/public static boolean has hash shishnbyrange(string str){if(str == null){return false;} char [] ch = str.tochararray(); true;}} return false;}/***すべての漢字が漢字であるかどうか<br>*漢字のエンコーディング範囲に基づいて裁判官<br>* cjk統一漢字(中国人、 "()" '' "、!¥など) false;} char [] ch = str.tochararray(); for(char c:ch){if(c <0x4e00 || c> 0x9fbf){return false;}} return true;}}}中国の句読点を判断せずに中国人であるかどうかを判断する場合、定期的なマッチングを使用することをお勧めします。これはより効率的です。
上記のコードコンテンツは、キャラクターを中国語(非常に便利)と判断するためにJavaの例のコードを紹介します。それが役立つことを願っています。