1. 程式人生 > >java中擷取指定長度的字串的方法

java中擷取指定長度的字串的方法

我們經常會用到擷取指定長度的字串的情況。通常的做法是使用subString()方法進行,但字串中存在全形字元的情況下,使用此方法往往達不到目的,它實現的只是字元的個數(全形字元也按一個字元處理),按照byte數如何取得指定長度的字串呢。

下面的方法可供參考:

private String subStr4Byte(String str, int len) {
        String strRet = str;
        if (str != null) {
            byte[] bt = str.getBytes();
            if (bt.length > len) {
                // 半個漢字時、byte値<0
                if (bt[len - 1] < 0) {
                    strRet = new String(bt, 0, len - 1);
                } else {
                    strRet = new String(bt, 0, len);
                }
            }
        }
        return strRet;
    }

測試:

輸入"1234テスト。",長度為3,結果是123.

輸入"1234テスト。",長度為6,結果是123テ.

輸入"1234テスト。",長度為7,結果是123テ.

==========

該方法不正確,修正中。。。