<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 黄页网站在线观看免费| 亚洲AV之男人的天堂| 免费一级大黄特色大片| 亚洲精品中文字幕无码A片老| 在线观看无码AV网站永久免费 | 一区二区三区AV高清免费波多| 国外成人免费高清激情视频| 亚洲中文无码亚洲人成影院| 免费观看大片毛片| 美女被免费视频网站| 国产精品亚洲mnbav网站 | 午夜亚洲国产精品福利| 亚洲成av人片一区二区三区| jizz在线免费播放| 久久国产精品亚洲一区二区| 中文字幕av无码无卡免费| 亚洲精品天堂无码中文字幕| 免费人成无码大片在线观看| a视频在线免费观看| 91精品国产亚洲爽啪在线影院| 91成人免费在线视频| 亚洲爆乳AAA无码专区| 国产亚洲成人久久| 在免费jizzjizz在线播| 亚洲AV成人无码网站| 亚洲精品无码专区久久久| 69xx免费观看视频| 老司机午夜精品视频在线观看免费| 亚洲综合无码AV一区二区| 日本免费一区二区在线观看| 精品亚洲成A人在线观看青青| 亚洲午夜久久久久久久久电影网 | 一区国严二区亚洲三区| 特级精品毛片免费观看| 亚洲国产精品精华液| 国产亚洲一区二区精品| 免费无码又爽又高潮视频| a级片免费在线播放| 亚洲av永久无码精品网址| 久久精品国产亚洲AV麻豆不卡| 我要看免费的毛片|