java中字符串如何計算字節(jié)長度
java字符串計算字節(jié)長度
通常,計算字符串長度大小方法很多,熟悉的有將字符串寫入文件,然后讀取文件大小即可。這種方式還是比較麻煩的。
1.方法一
需要先拿到字符串===》然后再寫入文件===》再讀取文件===》統(tǒng)計文件字節(jié)流長度===》可以拿到字符串的字節(jié)大小
2.方法二
//編碼格式有 UTF-8 GB2312 GBK UTF-16 UTF-32 try { int length = "測試不同編碼格式的字節(jié)長度".getBytes("編碼格式").length; } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
通過String的getBytes()方法去統(tǒng)計它的length,這樣是最方便的,但是有個不好之處就是設(shè)置編碼格式,這個還是有很大影響的,采用那種編碼格式計算計算出來的字節(jié)長度不一樣,所以這個比較重要。
能想到的比較好的方法,就是將編碼格式設(shè)置在配置文件中,這樣不影響字符串的字節(jié)長度計算,也比較靈活,采用那種編碼格式,就設(shè)置成什么的,后期好維護。
3.代碼中運用
java截取字符串的指定字節(jié)數(shù)長度
由于Java字符串的length計算的是字符長度,而數(shù)據(jù)庫的限制長度是字節(jié)數(shù),為了防止報錯,可以在Java程序中截取字符串的指定字節(jié)數(shù)長度
public static String getLenString(String content, int len) { if (content == null || content.length() == 0) { return content; } byte[] bytes = content.getBytes(); if (bytes.length > len) { int tempLen = new String(bytes, 0, len).length(); content = content.substring(0, tempLen); // 防止最后一個字符的長度不是一個字節(jié)數(shù) if (content.getBytes().length > len) { content = content.substring(0, tempLen - 1); } } return content; }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決spring?data?jpa?saveAll()?保存過慢問題
這篇文章主要介紹了解決spring?data?jpa?saveAll()保存過慢問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11spring redis 如何實現(xiàn)模糊查找key
這篇文章主要介紹了spring redis 如何實現(xiàn)模糊查找key的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Java修飾符abstract與static及final的精華總結(jié)
abstract、static、final三個修飾符是經(jīng)常會使用的,對他們的概念必須非常清楚,弄混了會產(chǎn)生些完全可以避免的錯誤,比如final和abstract不能一同出現(xiàn),static和abstract不能一同出現(xiàn),下面我們來詳細了解2022-04-04