最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Java中byte[]?和?String互相轉(zhuǎn)換問題

 更新時(shí)間:2022年01月26日 15:15:08   作者:Jiakeqiang  
這篇文章主要介紹了Java中byte[]?和?String互相轉(zhuǎn)換問題,通過用例給大家介紹了通過String類將String轉(zhuǎn)換成byte[]或者byte[]轉(zhuǎn)換成String,具體實(shí)例代碼跟隨小編一起看看吧

通過用例學(xué)習(xí)Java中的byte數(shù)組和String互相轉(zhuǎn)換,這種轉(zhuǎn)換可能在很多情況需要,比如IO操作,生成加密hash碼等等。

除非覺得必要,否則不要將它們互相轉(zhuǎn)換,他們分別代表了不同的數(shù)據(jù),專門服務(wù)于不同的目的,通常String代表文本字符串,byte數(shù)組針對二進(jìn)制數(shù)據(jù)

通過String類將String轉(zhuǎn)換成byte[]或者byte[]轉(zhuǎn)換成String

用String.getBytes()方法將字符串轉(zhuǎn)換為byte數(shù)組,通過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

通過Base64將String轉(zhuǎn)換成byte[]或者byte[]轉(zhuǎn)換成String[Java 8]

可能你已經(jīng)了解 Base64 是一種將二進(jìn)制數(shù)據(jù)編碼的方式,正如UTF-8和UTF-16是將文本數(shù)據(jù)編碼的方式一樣,所以如果你需要將二進(jìn)制數(shù)據(jù)編碼為文本數(shù)據(jù),那么Base64可以實(shí)現(xiàn)這樣的需求

從Java 8 開始可以使用Base64這個(gè)類

import java.util.Base64;
public class StringByteArrayExamples 
{
    public static void main(String[] args) 
    {
        //Original byte[]
        byte[] bytes = "hello world".getBytes();
         
        //Base64 Encoded
        String encoded = Base64.getEncoder().encodeToString(bytes);
         
        //Base64 Decoded
        byte[] decoded = Base64.getDecoder().decode(encoded);
         
        //Verify original content
        System.out.println( new String(decoded) );
    }
}

輸出:

hello world

總結(jié)

在byte[]和String互相轉(zhuǎn)換的時(shí)候你應(yīng)該注意輸入數(shù)據(jù)的類型

  1. 當(dāng)使用String類的時(shí)候,將String作為輸入類型
  2. 當(dāng)使用Base64類的時(shí)候,使用byte數(shù)組作為輸入類型

補(bǔ)充:下面看下java的byte[]與String相互轉(zhuǎn)換

String轉(zhuǎn)byte[]

byte[] sInput = new byte[0];
try {
? ? // 可以指定編碼,默認(rèn)也只UTF-8
? ? sInput = "這是內(nèi)容".getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
? ? e.printStackTrace();
}

byte[]轉(zhuǎn)String

// 這里sInput是上面byte[],也是可以指定編碼,默認(rèn)也是UTF-8
String str = new String(sInput, "UTF-8")

byte[]打印到控制臺(tái)看

org.bouncycastle.pqc.math.linearalgebra.ByteUtils.toBinaryString(sInput)
// 這個(gè)方法的源碼
? ? public static String toBinaryString(byte[] var0) {
? ? ? ? String var1 = "";
? ? ? ? for(int var2 = 0; var2 < var0.length; ++var2) {
? ? ? ? ? ? byte var3 = var0[var2];
? ? ? ? ? ? for(int var4 = 0; var4 < 8; ++var4) {
? ? ? ? ? ? ? ? int var5 = var3 >>> var4 & 1;
? ? ? ? ? ? ? ? var1 = var1 + var5;
? ? ? ? ? ? }
? ? ? ? ? ? if (var2 != var0.length - 1) {
? ? ? ? ? ? ? ? var1 = var1 + " ";
? ? ? ? }
? ? ? ? return var1;
? ? }

到此這篇關(guān)于Java中byte[] 和 String互相轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)java  byte[] 和 String互相轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android應(yīng)用開發(fā)之將SQLite和APK一起打包的方法

    Android應(yīng)用開發(fā)之將SQLite和APK一起打包的方法

    這篇文章主要介紹了Android應(yīng)用開發(fā)之將SQLite和APK一起打包的方法,文章時(shí)間較早,盡管現(xiàn)在開發(fā)環(huán)境已大都遷移至Android Studio上,但打包原理依然相同,需要的朋友可以參考下
    2015-08-08
  • Spring Cloud Gateway 記錄請求應(yīng)答數(shù)據(jù)日志操作

    Spring Cloud Gateway 記錄請求應(yīng)答數(shù)據(jù)日志操作

    這篇文章主要介紹了Spring Cloud Gateway 記錄請求應(yīng)答數(shù)據(jù)日志操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 短網(wǎng)址的原理與生成方法(Java實(shí)現(xiàn))

    短網(wǎng)址的原理與生成方法(Java實(shí)現(xiàn))

    這篇文章主要給大家介紹了關(guān)于短網(wǎng)址的原理與生成方法,利用的是Java實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java利用反射實(shí)現(xiàn)框架類的方法實(shí)例

    Java利用反射實(shí)現(xiàn)框架類的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Java利用反射實(shí)現(xiàn)框架類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java動(dòng)態(tài)代理模式的深入揭秘

    Java動(dòng)態(tài)代理模式的深入揭秘

    這篇文章主要給大家介紹了關(guān)于Java動(dòng)態(tài)代理模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法

    java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法

    這篇文章主要為大家詳細(xì)介紹了java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Mybatis-Plus實(shí)現(xiàn)公共字段自動(dòng)填充的項(xiàng)目實(shí)踐

    Mybatis-Plus實(shí)現(xiàn)公共字段自動(dòng)填充的項(xiàng)目實(shí)踐

    本文主要介紹了Mybatis-Plus實(shí)現(xiàn)公共字段自動(dòng)填充的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • java微信掃碼支付模式一線下支付功能實(shí)現(xiàn)

    java微信掃碼支付模式一線下支付功能實(shí)現(xiàn)

    本篇文章主要介紹了JAVA微信掃碼支付模式一線下支付功能實(shí)現(xiàn),具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-11-11
  • Java ==,equals()與hashcode()的使用

    Java ==,equals()與hashcode()的使用

    本文主要介紹了Java ==,equals()與hashcode()的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java如何使用正則表達(dá)式限制特殊字符的個(gè)數(shù)

    java如何使用正則表達(dá)式限制特殊字符的個(gè)數(shù)

    這篇文章主要介紹了java如何使用正則表達(dá)式限制特殊字符的個(gè)數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

莎车县| 富源县| 盐山县| 广安市| 安新县| 子长县| 玉门市| 永嘉县| 文山县| 盐津县| 武功县| 平定县| 文山县| 漯河市| 和平区| 洪泽县| 怀安县| 和田县| 凌源市| 彭山县| 神农架林区| 芮城县| 汪清县| 余庆县| 定远县| 株洲市| 油尖旺区| 永新县| 曲松县| 宝兴县| 丹棱县| 阜城县| 周至县| 资中县| 锦屏县| 乐清市| 大悟县| 陆河县| 思茅市| 探索| 咸宁市|