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

Java精確截取字符串

開發(fā) 后端
本文主要介紹了Java精確截取字符串,取得字符串前面指定長(zhǎng)度字符函數(shù)。

Java精確截取字符串,取得字符串前面指定長(zhǎng)度字符函數(shù)

用java取得字符串的前面部分內(nèi)容的函數(shù)contentStr = contenttemp.substring(0, 150);其中要保證***長(zhǎng)度不能超過(guò)字符串的長(zhǎng)度。下面是我的實(shí)現(xiàn)部分代碼,以及網(wǎng)上搜索的相關(guān)代碼:

  1. /*  
  2. * content內(nèi)容過(guò)長(zhǎng)可能會(huì)導(dǎo)致xml文件過(guò)大,加載太慢。  
  3. * 但從seo的角度考慮全部輸出有利于搜索引擎,但一般情況下內(nèi)容也不會(huì)太多  
  4. * 為防止空格換行css無(wú)法控制撐大頁(yè)面,用正則表達(dá)式替換掉空格,所以截取前面100個(gè)字符,頁(yè)面顯示的內(nèi)容多少用css控制  
  5.  
  6.  *zdz的作品,流風(fēng)的作品  
  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){//如果長(zhǎng)度大于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);  

開發(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í):)

  1. private String str;  
  2. private int counterOfDoubleByte;  
  3. private byte b[];  
  4. /**  
  5. * 設(shè)置需要被限制長(zhǎng)度的字符串  
  6. * @param str 需要被限制長(zhǎng)度的字符串  
  7. */ 
  8. public void setLimitLengthString(String str){  
  9.    this.str = str;  
  10. }  
  11. /**  
  12. * @param len 需要顯示的長(zhǎng)度(<font color="red">注意:長(zhǎng)度是以byte為單位的,一個(gè)漢字是2個(gè)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.     * 按字節(jié)長(zhǎng)度截取字符串  
  38.     * @param str 將要截取的字符串參數(shù)  
  39.     * @param toCount 截取的字節(jié)長(zhǎng)度  
  40.     * @param more 字符串末尾補(bǔ)上的字符串  
  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個(gè)字符  
  64.      *  
  65.      * @param str 被處理字符串  
  66.      * @param toCount 截取長(zhǎng)度  
  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.     } 

得到字符串真實(shí)長(zhǎng)度和取固定長(zhǎng)度的字符串函數(shù)

  1. // 截取固定長(zhǎng)度子字符串 sSource為字符串iLen為長(zhǎng)度   
  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系統(tǒng) JEECMS v2012版發(fā)布
  2. Java生成樹結(jié)構(gòu)各點(diǎn)之間最短路徑算法
  3. Java 遠(yuǎn)程文件對(duì)接
  4. Java I/O系統(tǒng)基礎(chǔ)知識(shí)
  5. Ubuntu對(duì)Java開發(fā)包說(shuō)再見!
責(zé)任編輯:林師授 來(lái)源: myphoebe的博客
相關(guān)推薦

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#截取字符串函數(shù)

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字符串數(shù)據(jù)

2009-11-18 18:02:19

PHP字符串截取

2021-01-09 23:11:33

SQL數(shù)據(jù)庫(kù)字母

2010-07-13 09:20:38

SQL Server

2009-06-23 14:13:00

Java字符串

2025-06-09 10:10:00

JavaScrip開發(fā)字符串截取

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函數(shù)字符串
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲一区二区精品视频在线观看 | 欧美一级二级视频 | 成人精品视频免费 | 国产一级片在线播放 | 成人国产精品 | 成人欧美一区二区三区黑人孕妇 | 免费午夜视频在线观看 | 国产亚洲精品91 | 亚洲综合中文字幕在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 成人久久 | a视频在线观看 | 国产99精品 | 欧美一区二区三区,视频 | 在线免费观看成人 | 免费亚洲视频 | 亚洲成av人片在线观看 | 欧美a在线| 精品免费观看 | 亚洲伦理自拍 | 美女视频h | 四虎影院免费在线播放 | 日韩电影中文字幕 | 国产乱码精品1区2区3区 | 久久精品视频网站 | 成人免费视频在线观看 | 国产日韩欧美 | 久久精品99 | 亚洲国产精品激情在线观看 | 日本久草 | 久久人爽 | 91精品国产乱码久久久久久久久 | 日韩在线综合网 | 精品国产31久久久久久 | 国产精品免费在线 | 日韩一区二区三区在线 | 成人午夜精品一区二区三区 | 在线观看国产www | 欧美日韩国产一区二区三区 | 日韩成人在线免费观看 | 精品福利视频一区二区三区 |