『壹』 (java)如何獲取字元串的位元組數!
字元串是可以轉變成位元組數組,然後統計一下位元組數組的長度即可,參考如下代碼:
Java語言中,中文字元所佔的位元組數取決於字元的編碼方式,一般情況下,採用ISO8859-1編碼方式時,一個中文字元與一個英文字元一樣只佔1個位元組;採用GB2312或GBK編碼方式時,一個中文字元佔2個位元組;而採用UTF-8編碼方式時,一個中文字元會佔3個位元組。
public static void main(String []args) throws UnsupportedEncodingException {
// 運行結果:2
System.out.println("測試".getBytes("ISO8859-1").length);
// 運行結果:4
System.out.println("測試".getBytes("GB2312").length);
// 運行結果:4
System.out.println("測試".getBytes("GBK").length);
// 運行結果:6
System.out.println("測試".getBytes("UTF-8").length);
}
『貳』 java對同一個字元串重復使用getBytes()得到的byte,為什麼每一次都不同! 這是對123d的處理結果!
你輸出的是byte對象的內存地址。
getBytes()得到的是一個byte的數組對吧。你要看得到的byte應該遍歷列印這個byte數組里的元素,而不是直接列印byte對象。
String str = "123d";
byte[] by = str.getBytes();
for(int i=0;i<by.length;i++) {
System.out.println(by[i]);
}
『叄』 java認證:如何按位元組長度截取字元串
編程:編寫一個截取字元串的函數,輸入為一個字元串和位元組數,輸出為按位元組截取的字元串。public static String substring(String str, int toCount,String more){int reInt = 0;String reStr = 「」;if (str == null)return 「」;char[] tempChar = str.toCharArray();for (int kk = 0; (kk 《 tempChar.length && toCount 》 reInt); kk++) {String s1 = str.valueOf(tempChar[kk]);byte[] b = s1.getBytes();reInt += b.length;reStr += tempChar[kk];}if (toCount == reInt || (toCount == reInt - 1))reStr += more;return reStr;}Web應用程序在瀏覽器中顯示字元串時,由於顯示長度的限制,常常需要將字元串截取後再進行顯示。但目前很多流行的語言,如C#、Java內部採用的都是 Unicode 16(UCS2)編碼,在這種編碼中所有的字元都是兩個字元,因此,如果要截取的字元串是中、英文、數字混合的,就會產生問題,如下面的字元串:String s = 「a加b等於c,如果a等1、b等於2,那麼c等3」;上面的字元串既有漢字,又有英文字元和數字。要解決這個問題的方法是首先得到該字元串的UCS2編碼的位元組數組,如下面的代碼如下:byte[] bytes = s.getBytes(」Unicode「);由於上面生成的位元組數組中前兩個位元組是標志位,bytes[0] = -2,bytes[1] = -1,因此,要從第三個位元組開始掃描,對於一個英文或數字字元,UCS2編碼的第二個位元組是相應的ASCII,第一個位元組是0,如a的UCS2編碼是0 97,而漢字兩個位元組都不為0,因此,可以利於UCS2編碼的這個規則來計算實際的位元組數,
『肆』 java中如何對string.getbytes()得到的位元組數組處理
在Java中,使用string.getBytes()方法獲取的位元組數組,可進行多種處理。
首先,可以獲取數組的指定位元組,然後將其轉換為相應的基本類型或對象,如int或String。此操作可通過使用ByteBuffer的get方法實現。
其次,可以利用Apache commons codecs包中的工具類,調用Hex.encodeHexString(byte[])方法,將原始的byte數組轉換成十六進制字元串編碼,以供進一步分析或展示。
此外,構建新的字元串也是可行的選擇。通過使用StringBuffer或StringBuilder類,可以對位元組數組進行操作,最後得到一個全新的字元串結果。
這些方法提供了對位元組數組的多種處理方式,可以滿足不同場景的需求。在實際開發中,應根據具體應用背景靈活選擇合適的處理策略。