業務場景:Oracle數據字符集UTF-8,字段類型為VARCHAR2(2000)。當插入字符串的字節長度超過2000時,就會報錯,使用subString(0,2000)當字符串包含中文時,也會報錯,又不能直接只截取1000長度。所以需要一個根據字節長度來截取字符串的方法。 下面提供一下 ...
public static String subStr String str, int subSLength String subStr try if str null return else int tempSubLength subSLength 截取字節數 subStr str.substring , str.length lt subSLength str.length : subSLe ...
2019-12-10 09:09 0 824 推薦指數:
業務場景:Oracle數據字符集UTF-8,字段類型為VARCHAR2(2000)。當插入字符串的字節長度超過2000時,就會報錯,使用subString(0,2000)當字符串包含中文時,也會報錯,又不能直接只截取1000長度。所以需要一個根據字節長度來截取字符串的方法。 下面提供一下 ...
默認的截取字符串都是根據字符長度或位置截取的,典型的兩個方法是substr和substring。 這樣導致的問題是截取同樣長度的字符串時,多字節字符(漢字等)和單字節字符(半角英文字母、半角數字)占的位置長度差距較大,視覺上不太美觀,比如同樣是10個字符: /* * param ...
Web應用程序在瀏覽器中顯示字符串時,由於顯示長度的限制,常常需要將字符串截取后再進行顯示。但目前很多流行的語言,如C#、Java內部采用的都是 Unicode 16(UCS2)編碼,在這種編碼中所有的字符都是兩個字符,因此,如果要截取的字符串是中、英文、數字混合的,就會產生問題,如下面的字符串 ...
...
import java.io.UnsupportedEncodingException;import org.springframework.util.StringUtils; public class CutString{ /** *判斷是否是一個中文漢字 *@param c 字符 ...
解析:上面這個方法將漢字默認為2個字節,其他為1個字節,缺點是遇到UTF-8等編碼格式的時候不能用,經過代碼驗證"UTF-8"是默認一個漢字占3個字節。 結果:--str1.length=62----Byte長度=105-------str2=一百二十個字符怎么就那么難弄呢我該說 ...
單元:就是java中的一個char,可一個以認為是字符編碼的基本單元 二、根據字節截取字符串的代碼實 ...