国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
精確截取字符串
開(kāi)發(fā)中經(jīng)常遇到,字符串過(guò)長(zhǎng),無(wú)法完全顯示的問(wèn)題

這時(shí)候就需要截取我們所需要的長(zhǎng)度,后面顯示省略號(hào)或其他字符。

由于中文字符占兩個(gè)字節(jié),而英文字符占用一個(gè)字節(jié),所以,單純地判斷字符數(shù),效果往往不盡如人意

下面的方法通過(guò)判斷字符的類型來(lái)進(jìn)行截取,效果還算可以:)


如果大家有其他的解決方法歡迎貼出來(lái),共同學(xué)習(xí):)
**********************************************************************
private String str;
private int counterOfDoubleByte;
private byte b[];
/**
* 設(shè)置需要被限制長(zhǎng)度的字符串
* @param str 需要被限制長(zhǎng)度的字符串
*/
public void setLimitLengthString(String str){
  this.str = str;
}
/**
* @param len 需要顯示的長(zhǎng)度(<font color="red">注意:長(zhǎng)度是以byte為單位的,一個(gè)漢字是2個(gè)byte</font>)
* @param symbol 用于表示省略的信息的字符,如“...”,“>>>”等。
* @return 返回處理后的字符串
*/
public String getLimitLengthString(int len, String symbol) throws UnsupportedEncodingException {
  counterOfDoubleByte = 0;
  b = str.getBytes("GBK");
  if(b.length <= len)
    return str;
  for(int i = 0; i < len; i++){
    if(b[i] < 0)
      counterOfDoubleByte++;
  }

  if(counterOfDoubleByte % 2 == 0)
    return new String(b, 0, len, "GBK") + symbol;
  else
    return new String(b, 0, len - 1, "GBK") + symbol;
}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C++ 筆試 基礎(chǔ)之 07 將字符串的前N個(gè)字符平移到字符串的后面
mysql 中取得漢字字段的各漢字首字母
壓縮軟件(哈夫曼算法實(shí)現(xiàn)) 項(xiàng)目總結(jié)
Java中String類的concat方法
C# string 中的 @
PHP編碼轉(zhuǎn)換和PHP編碼判斷
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服