Accédez directement au code :
Copiez le code comme suit :
importer java.util.regex.Matcher ;
importer java.util.regex.Pattern ;
/**
*
* <p>
* Nom de classe ShowChineseInUnicodeBlock
* </p>
* <p>
* La description fournit une idée pour déterminer si une chaîne est en chinois ou en anglais.
* </p>
*
* @auteur wangxu [email protected]
* <p>
*Date 16/09/2014 18:45:35
* </p>
* @version V1.0
*
*/
classe publique ShowChineseInUnicodeBlock {
public static void main (String[] arguments) {
String str = "Je t'aime !? ():;"",.";
char[] charArray = str.toCharArray();
pour (int i = 0; i < charArray.length; i++) {
estChinois(charArray[i]);
}
String Chinese = "Putain de chinois" ;
System.out.println(isContainChinese(chinois));
Chaîne anglais = "dfafdabac" ;
System.out.println(isEnglish(anglais));
}
/**
*
* <p>
* Titre : isChinese
* </p>
* <p>
* Description : Cette fonction permet d'imprimer certains caractères pour voir à quoi ils appartiennent
* </p>
*
* @paramc
*
*/
public static void isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) {
System.out.println(c + "--CJK_UNIFIED_IDEOGRAPHS");
} sinon if (ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS) {
System.out.println(c + "--CJK_COMPATIBILITY_IDEOGRAPHS");
} sinon if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A) {
// Extension des idéogrammes unifiés CJK WikipediaUnicode étend les caractères chinois
// Extension A des idéogrammes unifiés CJK Extension A des idéogrammes unifiés CJK ;
// Extension B des idéogrammes unifiés CJK Extension B des idéogrammes unifiés CJK
System.out.println(c + "--CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A");
} else if (ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {//ponctuation générale
System.out.println(c + "--GENERAL_PUNCTUATION");
} sinon if (ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION) {
System.out.println(c + "--CJK_SYMBOLS_AND_PUNCTUATION");
} sinon if (ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
System.out.println(c + "--HALFWIDTH_AND_FULLWIDTH_FORMS");
}
}
public static boolean isEnglish(String charaString) {
return charaString.matches("^[a-zA-Z]*");
}
public static boolean isContainChinese(String str) {//Détecte s'il contient du chinois
Chaîne regEx = "[//u4E00-//u9FA5]+" ;
Modèle p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
si (m.find()) {
renvoie vrai ;
} autre {
renvoie faux ;
}
}
}