java?byte數(shù)組轉(zhuǎn)String的幾種常用方法
轉(zhuǎn)換方法概覽
在Java中,將byte數(shù)組轉(zhuǎn)換為String是常見(jiàn)的操作,尤其是在處理二進(jìn)制數(shù)據(jù)和字符串表示之間轉(zhuǎn)換時(shí)。以下是Java中幾種常用的轉(zhuǎn)換方法。
String(byte[] bytes) 構(gòu)造器
這是最簡(jiǎn)單的轉(zhuǎn)換方法,它使用平臺(tái)默認(rèn)的字符集來(lái)解碼byte數(shù)組。
byte[] bytes = {72, 101, 108, 108, 111}; // "Hello" in ASCII
String str = new String(bytes);
System.out.println(str); // 輸出: Hello
String(byte[] bytes, int offset, int length) 構(gòu)造器
這個(gè)方法允許你指定byte數(shù)組的子序列進(jìn)行轉(zhuǎn)換,通過(guò)offset和length參數(shù)。
byte[] bytes = new byte[]{72, 101, 108, 108, 111, 114, 108, 100}; // "HelloWorld" in ASCII
String str = new String(bytes, 0, 5); // 只轉(zhuǎn)換前5個(gè)字符
System.out.println(str); // 輸出: Hello
String(byte[] bytes, Charset charset) 方法
使用Charset參數(shù)可以指定特定的字符集進(jìn)行解碼,這在處理非平臺(tái)默認(rèn)字符集的數(shù)據(jù)時(shí)非常有用。
byte[] bytes = {72, 101, 108, 108, 111}; // "Hello" in ASCII
String str = new String(bytes, StandardCharsets.UTF_8);
System.out.println(str); // 輸出: Hello
String(byte[] bytes, int offset, int length, String charsetName) 方法
當(dāng)需要指定字符集并且提供子序列的轉(zhuǎn)換時(shí),可以使用這個(gè)方法。
byte[] bytes = new byte[]{72, 101, 108, 108, 111, 114, 108, 100}; // "HelloWorld" in ASCII
String str = new String(bytes, 6, 5, "US-ASCII"); // 從第6個(gè)字符開(kāi)始轉(zhuǎn)換5個(gè)字符
System.out.println(str); // 輸出: World
String(byte[] bytes, String charsetName) 構(gòu)造器
這個(gè)構(gòu)造器允許你通過(guò)字符集名稱(chēng)來(lái)解碼byte數(shù)組。
byte[] bytes = {72, 101, 108, 108, 111}; // "Hello" in ASCII
String str = new String(bytes, "UTF-8");
System.out.println(str); // 輸出: Hello附:通過(guò)String類(lèi)將String轉(zhuǎn)換成byte[]或者byte[]轉(zhuǎn)換成String
用String.getBytes()方法將字符串轉(zhuǎn)換為byte數(shù)組,通過(guò)String構(gòu)造函數(shù)將byte數(shù)組轉(zhuǎn)換成String
注意:這種方式使用平臺(tái)默認(rèn)字符集
package com.bill.example;
public class StringByteArrayExamples
{
public static void main(String[] args)
{
//Original String
String string = "hello world";
//Convert to byte[]
byte[] bytes = string.getBytes();
//Convert back to String
String s = new String(bytes);
//Check converted string against original String
System.out.println("Decoded String : " + s);
}
}輸出:
hello world
總結(jié)
到此這篇關(guān)于java byte數(shù)組轉(zhuǎn)String的幾種常用方法的文章就介紹到這了,更多相關(guān)java byte數(shù)組轉(zhuǎn)String內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)輸出任意整數(shù)的每一位
這篇文章主要介紹了java實(shí)現(xiàn)輸出任意整數(shù)的每一位,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
詳解Java豆瓣電影爬蟲(chóng)——小爬蟲(chóng)成長(zhǎng)記(附源碼)
這篇文章主要介紹了詳解Java豆瓣電影爬蟲(chóng)——小爬蟲(chóng)成長(zhǎng)記(附源碼) ,具有一定的參考價(jià)值,有需要的可以了解一下。2016-12-12
Springboot-admin整合Quartz實(shí)現(xiàn)動(dòng)態(tài)管理定時(shí)任務(wù)的過(guò)程詳解
Quartz是一款Java編寫(xiě)的開(kāi)源任務(wù)調(diào)度框架,同時(shí)它也是Spring默認(rèn)的任務(wù)調(diào)度框架,它的作用其實(shí)類(lèi)似于Timer定時(shí)器以及ScheduledExecutorService調(diào)度線(xiàn)程池,這篇文章主要介紹了Springboot-admin整合Quartz實(shí)現(xiàn)動(dòng)態(tài)管理定時(shí)任務(wù),需要的朋友可以參考下2023-04-04
解決Error:(5, 28) java: 程序包org.apache.ibatis.io
這篇文章主要介紹了解決Error:(5, 28) java: 程序包org.apache.ibatis.io不存在問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java Spring MVC 上傳下載文件配置及controller方法詳解
這篇文章主要介紹了Java Spring MVC 上傳下載文件配置及controller方法詳解,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
java實(shí)例方法被覆蓋,靜態(tài)方法被隱藏Explain(詳解)
下面小編就為大家?guī)?lái)一篇java實(shí)例方法被覆蓋,靜態(tài)方法被隱藏Explain(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Java多線(xiàn)程之線(xiàn)程安全問(wèn)題詳情
這篇文章主要介紹了Java多線(xiàn)程之線(xiàn)程安全問(wèn)題詳情,線(xiàn)程安全問(wèn)題是指因多線(xiàn)程搶占式執(zhí)行而導(dǎo)致程序出現(xiàn)bug的問(wèn)題。內(nèi)容介紹詳細(xì)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容2022-06-06
Spring Boot的測(cè)試類(lèi)中使用 @Transactional 注解
本文主要介紹了Spring Boot的測(cè)試類(lèi)中使用 @Transactional 注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-05-05
mybatis的if判斷不要使用boolean值的說(shuō)明
這篇文章主要介紹了mybatis的if判斷不要使用boolean值的說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11

