截取emoji表情符

工作中遇到一個問題:為保護用戶隱私 在評論區(qū)將用戶名中間的字段使用*號代替
有的奇葩用戶名中夾雜有表情字符,此時使用substring()進行截取操作,結(jié)果就有可能是亂碼或者不符合要求因為JVM運行時使用UTF-16編碼苦酱,實際Java自帶特殊字符截取的方法offsetByCodePoints

例如String 類型的字符串是一組表情, 現(xiàn)在要將他進行一下操作:

String emoji="??????????";

獲取表情個數(shù)

  • codePointCount方法返回整個String中的表情個數(shù)给猾,此時codePointCount=5
int codePointCount = emoji.codePointCount(0, emoji.length()); //返回指定文本中的Unicode代碼點數(shù)

截取最后一個表情

sta=4 疫萤,end=5
從第4個開始(不包括) 截取到第5個(包括)
確定截取的位置后,再使用substring截取

int sta =emoji.offsetByCodePoints(0 , codePointCount-1);//獲取倒數(shù)第2個表情結(jié)束的位置(實際也是倒數(shù)第一個表情開始的位置)
int end =emoji.offsetByCodePoints(0 , codePointCount); //獲取最后一個表情結(jié)束的位置

String subEmoji = emoji.substring(sta, end);    //subEmoji=??

如果截取第一個敢伸,開始的位置為offsetByCodePoints(0 , 0); 結(jié)束為offsetByCodePoints(0 ,1);

中間三個用***代替

int repSta =emoji.offsetByCodePoints(0 , 1);//不包括第一個表情
int repEnd =emoji.offsetByCodePoints(0 , 4); //范圍取第234個

StringBuffer buffer = new StringBuffer(emoji);
buffer.replace(repSta , repEnd , "***");
System.out.println(" buffer="+buffer.toString());   //buffer=??****??
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扯饶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子池颈,更是在濱河造成了極大的恐慌尾序,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躯砰,死亡現(xiàn)場離奇詭異每币,居然都是意外死亡,警方通過查閱死者的電腦和手機琢歇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門兰怠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人李茫,你說我怎么就攤上這事揭保。” “怎么了魄宏?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵秸侣,是天一觀的道長。 經(jīng)常有香客問我宠互,道長味榛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任予跌,我火速辦了婚禮搏色,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匕得。我一直安慰自己继榆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布汁掠。 她就那樣靜靜地躺著略吨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪考阱。 梳的紋絲不亂的頭發(fā)上翠忠,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音乞榨,去河邊找鬼秽之。 笑死,一個胖子當(dāng)著我的面吹牛吃既,可吹牛的內(nèi)容都是我干的考榨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼鹦倚,長吁一口氣:“原來是場噩夢啊……” “哼河质!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起震叙,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤掀鹅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后媒楼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乐尊,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年划址,在試婚紗的時候發(fā)現(xiàn)自己被綠了扔嵌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡夺颤,死狀恐怖对人,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拂共,我是刑警寧澤牺弄,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站宜狐,受9級特大地震影響势告,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抚恒,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一咱台、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俭驮,春花似錦回溺、人聲如沸春贸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萍恕。三九已至,卻和暖如春车要,著一層夾襖步出監(jiān)牢的瞬間允粤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工翼岁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留类垫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓琅坡,卻偏偏與公主長得像悉患,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子榆俺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,370評論 0 5
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5购撼? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 27,449評論 1 45
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,925評論 6 13
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,216評論 0 4
  • String類和正則表達(dá)式 今天的主要內(nèi)容 Scanner類概述Scanner獲取數(shù)據(jù)出現(xiàn)的小問題及解決方案 St...
    須臾之北閱讀 1,918評論 0 3