精確截取字符串(轉載)

開發中經常遇到,字符串過長,無法完全顯示的問題

這時候就需要截取我們所需要的長度,後面顯示省略號或其他字符。

由於中文字符佔兩個字節,而英文字符佔用一個字節,所以,單純地判斷字符數,效果往往不盡如人意

下面的方法通過判斷字符的類型來進行截取,效果還算可以:)


如果大家有其他的解決方法歡迎貼出來,共同學習:)
**********************************************************************
private String str;
private int counterOfDoubleByte;
private byte b[];
/**
* 設置需要被限制長度的字符串
* @param str 需要被限制長度的字符串
*/
public void setLimitLengthString(String str){
  this.str = str;
}
/**
* @param len 需要顯示的長度(<font color="red">注意:長度是以byte爲單位的,一個漢字是2個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 < 0)
      counterOfDoubleByte++;
  }

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



本文轉貼自網友:focus2004 的文章
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章