Java中字符串和byte數(shù)組之間的簡單轉(zhuǎn)換方法
前言
在Java編程中,我們常常需要對字符串和byte數(shù)組進(jìn)行轉(zhuǎn)換。字符串一般是用來表示文本信息,而byte數(shù)組則是用來表示二進(jìn)制數(shù)據(jù),如圖片、音頻等。本文將詳細(xì)介紹Java中字符串和byte數(shù)組之間的轉(zhuǎn)換方法,包括將字符串轉(zhuǎn)換為byte數(shù)組和將byte數(shù)組轉(zhuǎn)換為字符串。
Java中字符串與byte數(shù)組之間的轉(zhuǎn)換方法。
將字符串轉(zhuǎn)換為byte數(shù)組
Java中有兩種方式將字符串轉(zhuǎn)換為byte數(shù)組:使用String的getBytes()方法和使用Charset類的encode()方法。
String的getBytes()方法
String的getBytes()方法可以將一個字符串轉(zhuǎn)換為一個byte數(shù)組。該方法有多個重載形式,其中一個常用的形式是getBytes(String charsetName),該方法將字符串按照指定的字符集編碼為byte數(shù)組。
例如,將字符串\Hello, world!\轉(zhuǎn)換為byte數(shù)組:
String str = \Hello, world!\byte[] bytes = str.getBytes();
getBytes()方法默認(rèn)使用平臺默認(rèn)的字符集來編碼字符串,如果需要指定字符集,可以使用getBytes(String charsetName)方法來指定字符集。例如,將字符串按照UTF-8字符集編碼為byte數(shù)組:
String str = \Hello, world!\byte[] bytes = str.getBytes(\UTF-8\
Charset類的encode()方法
Charset類是Java提供的用于表示字符集的類。使用Charset類的encode()方法可以將一個字符串編碼為指定字符集的byte數(shù)組。
例如,將字符串按照UTF-8字符集編碼為byte數(shù)組:
String str = \Hello, world!\Charset charset = Charset.forName(\UTF-8\ByteBuffer byteBuffer = charset.encode(str); byte[] bytes = byteBuffer.array();
注意,Charset類的encode()方法返回一個ByteBuffer對象,需要通過調(diào)用array()方法將其轉(zhuǎn)換為byte數(shù)組。
將byte數(shù)組轉(zhuǎn)換為字符串
Java中有兩種方式將byte數(shù)組轉(zhuǎn)換為字符串:使用String的構(gòu)造方法和使用Charset類的decode()方法。
String的構(gòu)造方法
String的構(gòu)造方法可以將一個byte數(shù)組轉(zhuǎn)換為一個字符串。該構(gòu)造方法有多個重載形式,其中一個常用的形式是String(byte[] bytes),該構(gòu)造方法使用平臺默認(rèn)的字符集將byte數(shù)組解碼為字符串。
例如,將byte數(shù)組轉(zhuǎn)換為字符串:
byte[] bytes = {72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33};
String str = new String(bytes);如果需要指定字符集,可以使用帶有字符集參數(shù)的構(gòu)造方法。例如,將byte數(shù)組按照UTF-8字符集解碼為字符串:
byte[] bytes = {-26, -75, -116, -24, -81, -107, -26, -75, -104, -24, -81, -91, -17, -68, -124, -27, -105, -100, -28, -72, -102, -22, -109, -88, -23, -83, -123};
String str = new String(bytes, \UTF-8\Charset類的decode()方法
使用Charset類的decode()方法可以將一個byte數(shù)組解碼為指定字符集的字符串。
例如,將byte數(shù)組按照UTF-8字符集解碼為字符串:
byte[] bytes = {-26, -75, -116, -24, -81, -107, -26, -75, -104, -24, -81, -91, -17, -68, -124, -27, -105, -100, -28, -72, -102, -22, -109, -88, -23, -83, -123};
Charset charset = Charset.forName(\UTF-8\CharBuffer charBuffer = charset.decode(ByteBuffer.wrap(bytes));
String str = charBuffer.toString();注意,Charset類的decode()方法返回一個CharBuffer對象,需要通過調(diào)用toString()方法將其轉(zhuǎn)換為字符串。
總結(jié)
本文介紹了Java中字符串和byte數(shù)組之間的轉(zhuǎn)換方法,包括將字符串轉(zhuǎn)換為byte數(shù)組和將byte數(shù)組轉(zhuǎn)換為字符串。其中,字符串的getBytes()方法和Charset類的encode()方法可以將字符串轉(zhuǎn)換為byte數(shù)組,String的構(gòu)造方法和Charset類的decode()方法可以將byte數(shù)組轉(zhuǎn)換為字符串。在實際應(yīng)用中,需要根據(jù)實際情況選擇合適的轉(zhuǎn)換方法和字符集。
到此這篇關(guān)于Java中字符串和byte數(shù)組之間的簡單轉(zhuǎn)換方法的文章就介紹到這了,更多相關(guān)Java字符串與byte數(shù)組轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?中的?Service?有多個實現(xiàn)類如何注入(多種方式)
這篇文章主要介紹了Spring?中的?Service?有多個實現(xiàn)類如何注入,本文通過多種方式結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
Spring Boot 4.0 新特性實戰(zhàn)全解析
SpringBoot4.0帶來了多項重大升級,包括GraalVM原生鏡像支持、自動配置優(yōu)化、Web層升級(HTTP/3和MVC響應(yīng)式支持)以及Testcontainers集成簡化,本文詳細(xì)介紹了每個特性的實操步驟,并提供遷移避坑指南,幫助開發(fā)者順利升級到SpringBoot4.0,感興趣的朋友跟隨小編一起看看吧2026-01-01
關(guān)于SpringBoot+Mybatis報MapperScan.factoryBean()問題
解決SpringBoot+Mybatis中的MapperScan.factoryBean()問題,讓你的項目運(yùn)行更順暢!本指南將帶你一步步解決這個問題,讓你的開發(fā)過程更加高效,不要錯過這個實用指南,快來一探究竟吧!2024-02-02
Java純代碼實現(xiàn)導(dǎo)出pdf合并單元格
這篇文章主要為大家詳細(xì)介紹了Java如何純代碼實現(xiàn)導(dǎo)出pdf與合并單元格功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
深入理解Java基礎(chǔ)之try-with-resource語法糖
這篇文章主要介紹了深入理解Java基礎(chǔ)之try-with-resource語法糖,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
SpringBoot整合SpringSecurityOauth2實現(xiàn)鑒權(quán)動態(tài)權(quán)限問題
這篇文章主要介紹了SpringBoot整合SpringSecurityOauth2實現(xiàn)鑒權(quán)-動態(tài)權(quán)限,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06

