/** * 過濾Emoji表情 * @author Kunjie * 2015年7月17日 */ public class EmojiFilter { public static void main(String[] args) { System.out.println(filter("啊阿薩德發秦莞爾")); } public static String filter(String str){ if(str == null || str.length() == 0){ return ""; } StringBuffer sb = new StringBuffer(); for(int i=0;i<str.length()-1;i++){ int ch = str.charAt(i); int min = Integer.parseInt("E001", 16); int max = Integer.parseInt("E537", 16); if(ch >= min && ch <= max){ sb.append(""); }else{ sb.append((char)ch); } } return sb.toString(); } }
每一個表情有 sb unicode編碼。app
如太陽表情,則sb碼爲E04A,是16進制的。編碼
從中找到最小的 E001, E537,spa
而後將其轉換爲10進制比較大小。在這個範圍內,就是emoji的表情字符了。code