上面的代碼實(shí)現(xiàn)思路都是正確的,不過我在使用中發(fā)現(xiàn)了一點(diǎn)小小的問題,用搜狗和百度輸入法切換到英文輸入的時(shí)候,會(huì)出現(xiàn)異常孵户,具體表現(xiàn)為輸入 “the” 這個(gè)單詞時(shí)目派,
輸入 t 輸入框顯示 t
接著輸入 h 顯示 tth
輸入 e 顯示 tththe
我做了如下的修改
public static CharSequence filterEmoji(CharSequence s) {
char currentChar;
char realChar;
int cur = 0;
int startIndex, endIndex;
while (cur < s.length()) {
currentChar = s.charAt(cur);
realChar = currentChar;
startIndex = endIndex = cur;
if (currentChar >= 0xD800 && currentChar <= 0xDBFF && (cur + 1) < s.length()) {
char nextChar = s.charAt(++cur);
realChar = (char) (0x10000 + (currentChar - 0xD800) * 0x400 + (nextChar - 0xDC00));
endIndex = cur;
}
if (emojiSignatureSet.contains(realChar)) {
CharSequence tempStart = s.subSequence(0, startIndex);
CharSequence tempEnd = s.subSequence(endIndex + 1, s.length());
s = tempStart.toString() + tempEnd;
cur = startIndex;
} else {
cur = endIndex + 1;
}
}
return s;
}
Emoji 識(shí)別與過濾后臺(tái)提了一個(gè)需求然低,要求用戶輸入上傳的內(nèi)容中不能帶 Emoji仔役。網(wǎng)上有一些資料掷伙,都提到了過濾 Emoji 的方法,但都存在多過濾或少過濾的情況又兵。我從官方的標(biāo)準(zhǔn)資料入手任柜,希望能解...