<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    vickzhu

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      151 隨筆 :: 0 文章 :: 34 評論 :: 0 Trackbacks
    在頁面中顯示某字段時,字段值過長會導致頁面樣式錯亂,這時候我們需要對值進行截取,當截取值時會碰到以下問題:
    1、如果按字符截取會導致中英文顯示的長度不一
    2、如果按字節截取可能會導致最后一個中文截成兩部分
    以下代碼是在網上獲取并經過改造而成,能夠很好的解決上面兩個問題
        /**
         * 根據指定字節數截取字符串,當指定處為中文第一個字節時少截取一個字符,當長度大于指定截取長度時,截取后在字符串末尾追加指定字符串<br/>
         * 這里添加了字符串的編碼,因為頁面的編碼不同,字符串所占字節也不同
         *
         * @param str 待截取字符串,如果為null或者"",則立即返回str
         * @param length 需要截取的長度
         * @param endStr 截取后末尾追加的字符串
         * @param charset 待截取字符串的編碼
         * @return
         */
        public String subStringByByte(String str, int length, String endStr, String charset) {
            if (str == null || "".equals(str.trim()) || length <= 0) {
                return str;
            }
            try {
                int strlen = str.getBytes(charset).length;// 這里要和頁面的編碼相關
                if (strlen < length) return str;
                Pattern p = Pattern.compile("^[""u4e00-""u9fa5]$");
                int i = 0, j = 0;
                int sublength = length - ((endStr == null) ? 0 : endStr.getBytes(charset).length);
                for (char c : str.toCharArray()) {
                    Matcher m = p.matcher(String.valueOf(c));
                    i += m.find() ? 2 : 1;
                    ++j;
                    if (i == sublength) break;
                    if (i > sublength) {
                        --j;
                        break;
                    }
                }
                return str.substring(0, j) + endStr;
            } catch (UnsupportedEncodingException e) {
                return str;
            }
        }
    posted on 2010-12-14 10:49 筱 筱 閱讀(350) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产美女无遮挡免费网站| 在线视频免费观看爽爽爽| yy6080久久亚洲精品| 亚洲熟妇无码AV| 一二三四免费观看在线视频中文版 | 成年女人18级毛片毛片免费| 亚洲日本乱码一区二区在线二产线 | 亚洲国产精品一区二区第四页| 91视频精品全国免费观看| 亚洲国产天堂久久久久久| 日韩精品视频在线观看免费| 亚洲午夜精品一级在线播放放| 免费一级毛suv好看的国产网站| 免费人成网站7777视频| 成人免费夜片在线观看| 97碰公开在线观看免费视频| 亚洲一卡2卡3卡4卡国产网站| 中文永久免费观看网站| 亚洲精品你懂的在线观看| 久久九九AV免费精品| 亚洲码在线中文在线观看| 9久热精品免费观看视频| 亚洲精品乱码久久久久久久久久久久 | 亚洲精品电影天堂网| 毛片在线看免费版| 国产亚洲精品美女2020久久| 亚洲一区二区三区在线视频| 精品视频一区二区三区免费| 国产精品亚洲精品| 亚洲国产综合无码一区二区二三区 | 亚洲综合偷自成人网第页色| 免费国产精品视频| 久久精品国产免费| 亚洲一区精品视频在线| 亚洲国产激情一区二区三区| 亚洲视频在线观看免费| 亚洲精品无码不卡在线播放| 免费看成人AA片无码视频羞羞网| 久久人午夜亚洲精品无码区| 亚洲精品无码AV人在线播放| 成人免费在线视频|