成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java精確截取字符串

開發 后端
本文主要介紹了Java精確截取字符串,取得字符串前面指定長度字符函數。

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

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

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

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

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

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

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

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

  1. private String str;  
  2. private int counterOfDoubleByte;  
  3. private byte b[];  
  4. /**  
  5. * 設置需要被限制長度的字符串  
  6. * @param str 需要被限制長度的字符串  
  7. */ 
  8. public void setLimitLengthString(String str){  
  9.    this.str = str;  
  10. }  
  11. /**  
  12. * @param len 需要顯示的長度(<font color="red">注意:長度是以byte為單位的,一個漢字是2個byte</font>)  
  13. * @param symbol 用于表示省略的信息的字符,如“...”,“>>>”等。  
  14. * @return 返回處理后的字符串  
  15. */ 
  16. public String getLimitLengthString(int len, String symbol) throws UnsupportedEncodingException {  
  17.    counterOfDoubleByte = 0;  
  18.    b = str.getBytes("GBK");  
  19.    if(b.length <= len)  
  20.      return str;  
  21.    for(int i = 0; i < len; i++){  
  22.      if(b[i] < 0)  
  23.        counterOfDoubleByte++;  
  24.    }  
  25.  
  26.    if(counterOfDoubleByte % 2 == 0)  
  27.      return new String(b, 0, len, "GBK") + symbol;  
  28.    else 
  29.      return new String(b, 0, len - 1"GBK") + symbol;  
  30. }  
  31.    
  32.    
  33.    
  34. -------------------  
  35.    
  36. /** *//**  
  37.     * 按字節長度截取字符串  
  38.     * @param str 將要截取的字符串參數  
  39.     * @param toCount 截取的字節長度  
  40.     * @param more 字符串末尾補上的字符串  
  41.     * @return 返回截取后的字符串  
  42.     */ 
  43.    public String substring(String str, int toCount, String more) ...{  
  44.      int reInt = 0;  
  45.      String reStr = "";  
  46.      if (str == null)  
  47.        return "";  
  48.      char[] tempChar = str.toCharArray();  
  49.      for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) ...{  
  50.        String s1 = str.valueOf(tempChar[kk]);  
  51.        byte[] b = s1.getBytes();  
  52.        reInt += b.length;  
  53.        reStr += tempChar[kk];  
  54.      }  
  55.      if (toCount == reInt || (toCount == reInt - 1))  
  56.        reStr += more;  
  57.      return reStr;  
  58.    }  
  59.    
  60. =================  
  61.    
  62. /**  
  63.      * 取字符串的前toCount個字符  
  64.      *  
  65.      * @param str 被處理字符串  
  66.      * @param toCount 截取長度  
  67.      * @param more 后綴字符串  
  68.      * @version 2004.11.24  
  69.      * @author zhulx  
  70.      * @return String  
  71.      */ 
  72.     public static String substring(String str, int toCount,String more)  
  73.     {  
  74.       int reInt = 0;  
  75.       String reStr = "";  
  76.       if (str == null)  
  77.         return "";  
  78.       char[] tempChar = str.toCharArray();  
  79.       for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) {  
  80.         String s1 = str.valueOf(tempChar[kk]);  
  81.         byte[] b = s1.getBytes();  
  82.         reInt += b.length;  
  83.         reStr += tempChar[kk];  
  84.       }  
  85.       if (toCount == reInt || (toCount == reInt - 1))  
  86.         reStr += more;  
  87.       return reStr;  
  88.     } 

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

  1. // 截取固定長度子字符串 sSource為字符串iLen為長度   
  2. function getInterceptedStr(sSource, iLen)   
  3. {   
  4.     if(sSource.replace(/[^\x00-\xff]/g,"xx").length <= iLen)   
  5.     {   
  6.         return sSource;   
  7.     }   
  8.     var ELIDED = "";   
  9.        
  10.     var str = "";   
  11.     var l = 0;   
  12.     var schar;   
  13.     for(var i=0; schar=sSource.charAt(i); i++)   
  14.     {   
  15.         str += schar;   
  16.         l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1);   
  17.         if(l >= iLen - ELIDED.length)   
  18.         {   
  19.             break;   
  20.         }   
  21.     }   
  22.     str += ELIDED;   
  23.        
  24.     return str;   

原文鏈接:http://www.cnblogs.com/myphoebe/archive/2011/12/20/2294171.html

【編輯推薦】

  1. Java開源CMS系統 JEECMS v2012版發布
  2. Java生成樹結構各點之間最短路徑算法
  3. Java 遠程文件對接
  4. Java I/O系統基礎知識
  5. Ubuntu對Java開發包說再見!
責任編輯:林師授 來源: myphoebe的博客
相關推薦

2009-06-30 14:16:37

截取字符串

2022-07-18 08:18:11

字符JavaJDK

2010-11-26 11:34:32

MySQL截取字符串函

2009-09-01 17:41:53

C#截取字符串函數

2009-09-01 17:58:55

C#截取字符串

2009-09-01 17:50:23

C#截取字符串

2021-03-08 08:23:24

Java字符串截取

2022-03-16 22:21:53

substringsubstrslice

2010-04-27 12:26:21

Unix字符串

2010-09-13 15:06:40

sql server字

2023-10-08 08:37:28

SQL字符串數據

2009-11-18 18:02:19

PHP字符串截取

2021-01-09 23:11:33

SQL數據庫字母

2010-07-13 09:20:38

SQL Server

2009-06-23 14:13:00

Java字符串

2025-06-09 10:10:00

JavaScrip開發字符串截取

2009-11-26 16:43:11

PHP截取中文字符串

2024-04-01 08:41:39

字符串.NET

2010-11-26 09:51:54

MySQL字符串

2010-09-09 11:48:00

SQL函數字符串
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产免费一区二区 | 久久的色| 国产精品久久久久久吹潮日韩动画 | 亚洲一区二区久久 | 亚洲一区av| 在线观看黄色大片 | 精品国产乱码久久久久久丨区2区 | 日韩成人性视频 | 91福利在线观看视频 | 国产精品一区二区免费 | 国产免费一区二区 | 久操国产 | 精品一区二区三区中文字幕 | 国产伦精品一区二区 | 国产大学生情侣呻吟视频 | 九九热精品视频 | 日韩最新网站 | 久久久久国产一级毛片高清网站 | 久久久久久国产精品 | 亚洲欧美日韩精品久久亚洲区 | 超碰在线97国产 | 日本黄色激情视频 | 伊人免费观看视频 | 亚洲精品电影网在线观看 | 国产不卡在线观看 | 午夜精品视频 | 久久久久一区二区 | 国产在线视频一区 | 黄网站免费在线看 | 日本成人福利 | 欧美中文字幕一区二区三区亚洲 | 精品国产久 | 野狼在线社区2017入口 | 国产精品久久久久久久久久久免费看 | 国产精品国产三级国产aⅴ浪潮 | 一道本不卡视频 | 久久久观看 | 欧美日一区二区 | 中文字幕一区在线观看视频 | 久久成人一区 | 日韩av一区二区在线观看 |