中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么精確截取字符串

發布時間:2021-07-01 17:10:50 來源:億速云 閱讀:235 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關Java中怎么精確截取字符串,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Java精確截取字符串,取得字符串前面指定長度字符函數

用java取得字符串的前面部分內容的函數contentStr = contenttemp.substring(0, 150);其中要保證***長度不能超過字符串的長度。下面是我的實現部分代碼,以及網上搜索的相關代碼:

/*  * content內容過長可能會導致xml文件過大,加載太慢。  * 但從seo的角度考慮全部輸出有利于搜索引擎,但一般情況下內容也不會太多  * 為防止空格換行css無法控制撐大頁面,用正則表達式替換掉空格,所以截取前面100個字符,頁面顯示的內容多少用css控制    *zdz的作品,流風的作品  */ //str.trim().replaceAll("\\s+"," ");   String contenttemp = rs.getString(contentName).trim().replaceAll("\\s+","");  //NpfDebug.print(contenttemp.length());  if(contenttemp.length()>100){//如果長度大于100則截取   contenttemp = contenttemp.substring(0, 100);   //NpfDebug.print("contenttemp.length()>100 ? "+contenttemp.length()+"\n"+contentStr);  }  rsbody.append(beforCONTENT);  rsbody.append(contenttemp);  rsbody.append(endCONTENT);

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

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

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

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

如果大家有其他的解決方法歡迎貼出來,共同學習:)

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[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;  }           -------------------     /** *//**      * 按字節長度截取字符串      * @param str 將要截取的字符串參數      * @param toCount 截取的字節長度      * @param more 字符串末尾補上的字符串      * @return 返回截取后的字符串      */    public String substring(String str, int toCount, String more) ...{       int reInt = 0;       String reStr = "";       if (str == null)         return "";       char[] tempChar = str.toCharArray();       for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) ...{         String s1 = str.valueOf(tempChar[kk]);         byte[] b = s1.getBytes();         reInt += b.length;         reStr += tempChar[kk];       }       if (toCount == reInt || (toCount == reInt - 1))         reStr += more;       return reStr;     }     =================     /**       * 取字符串的前toCount個字符       *       * @param str 被處理字符串       * @param toCount 截取長度       * @param more 后綴字符串       * @version 2004.11.24       * @author zhulx       * @return String       */     public static String substring(String str, int toCount,String more)      {        int reInt = 0;        String reStr = "";        if (str == null)          return "";        char[] tempChar = str.toCharArray();        for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) {          String s1 = str.valueOf(tempChar[kk]);          byte[] b = s1.getBytes();          reInt += b.length;          reStr += tempChar[kk];        }        if (toCount == reInt || (toCount == reInt - 1))          reStr += more;        return reStr;      }

得到字符串真實長度和取固定長度的字符串函數

// 截取固定長度子字符串 sSource為字符串iLen為長度   function getInterceptedStr(sSource, iLen)   {       if(sSource.replace(/[^\x00-\xff]/g,"xx").length <= iLen)       {           return sSource;       }       var ELIDED = "";              var str = "";       var l = 0;       var schar;       for(var i=0; schar=sSource.charAt(i); i++)       {           str += schar;           l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1);           if(l >= iLen - ELIDED.length)           {               break;           }       }       str += ELIDED;              return str;   }

看完上述內容,你們對Java中怎么精確截取字符串有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

翁源县| 井陉县| 中江县| 天全县| 东方市| 龙泉市| 阜城县| 晋宁县| 宝清县| 枝江市| 同德县| 凤阳县| 治多县| 道真| 盐源县| 阳曲县| 淅川县| 德阳市| 盐山县| 四子王旗| 若羌县| 大同县| 河曲县| 石台县| 高淳县| 通化市| 大港区| 轮台县| 辰溪县| 乌拉特前旗| 青龙| 嘉鱼县| 林甸县| 阳朔县| 兴国县| 大城县| 昌图县| 台江县| 黔西| 平原县| 牟定县|