java中擷取指定長度的字串的方法
阿新 • • 發佈:2019-02-09
我們經常會用到擷取指定長度的字串的情況。通常的做法是使用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テ.
==========
該方法不正確,修正中。。。