有这么一个需求当服务器返回的数据中包含中文和英文的时候,只显示把中文显示出来(只获取中文内容)。
看代码:
public static String checkString(String str) { StringBuilder res = new StringBuilder(); if (str != null) { for (int i = 0; i < str.length(); i++) { //只要字符串中有中文则为中文 if (isChinese(str.charAt(i))) { res.append(str.charAt(i)); } } } return res.toString(); } //判断是不是中文 public static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { return true; } return false; }更具传入的字符串,循环遍历字符串中每个字符 在更具每个字符的UnicodeBlock码来判断是否包含在中文的取值范围内,若包含就返回true,然后通过StringBuilder可变可操作字符的特性对中文字符做拼接操作,最后返回。(可以写在工具类中)