1. 程式人生 > 其它 >Java 擷取目標長度英文單詞字串 要求避免截斷單詞

Java 擷取目標長度英文單詞字串 要求避免截斷單詞

在專案中,遇到一個需求,如我要擷取一串字串,而又不想擷取半截的單詞,看了下php手冊的這個mb_strimwidth() 函式,據說是不會打斷單詞的,可是測試沒有成功,
於是乎自己寫個先,雖然有些小問題,但是勉強能用了,有時間再封裝的好點. 該函式的實現原理是利用wordwrap()打斷單詞,然後用mb_strlen()計算單詞的長度,擷取到需要被擷取的長度即可. 如下測試:




function
wordcut($string, $cutlength = 250, $replace = ‘…‘){ //長度不足直接返回 if(mb_strlen($string) <= $cutlength
){ return $string; }else{ //計算當前單詞總長度 $totalLength = 0; $datas = $newwords = array(); //打亂文字 $wrap = wordwrap($string,1,"\t"); //組成陣列 $wraps = explode("\t",$wrap); foreach ($wraps as $tmp){ //計算每個單詞的長度 $datas[$tmp] = mb_strlen($tmp); } foreach ($datas as $word => $length){ //儲存單詞的總長度 $totalLength
+= $length; //如果小於擷取的長度則儲存 if($totalLength < $cutlength){ array_push($newwords,$word); }else{ break; } } //生成新字串 $str = trim(implode(" ",$newwords)); return empty($str) ? $str : $str.‘ ‘.$replace; } }
QQ:1542385235 (PHP、Java、安卓蘋果app製作修改、頁面切圖、各類模板修改、仿站,資料庫修復、WAP製作修改 。我們團隊是專門做網站開發的,都是有3年以上工作經驗。需要後臺系統開發,網頁頁面製作,app製作,ui設計的請加我qq聯絡。非誠勿擾!!) 本人qq群也有許多的技術文件,希望可以為你提供一些幫助(非技術的勿加!)。 QQ群: 281442983 (點選連結加入群:http://jq.qq.com/?_wv=1027&k=29LoD19)