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

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

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

通過用例學(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

注意:這種方式使用平臺默認(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可以實現(xiàn)這樣的需求

從Java 8 開始可以使用Base64這個類

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)換的時候你應(yīng)該注意輸入數(shù)據(jù)的類型

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

補充:下面看下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[]打印到控制臺看

org.bouncycastle.pqc.math.linearalgebra.ByteUtils.toBinaryString(sInput)
// 這個方法的源碼
? ? 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一起打包的方法,文章時間較早,盡管現(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ù)日志操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 短網(wǎng)址的原理與生成方法(Java實現(xiàn))

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

湟中县| 中西区| 崇州市| 姜堰市| 乐亭县| 大英县| 揭东县| 桑日县| 革吉县| 都兰县| 贵定县| 五华县| 南安市| 辽中县| 兴山县| 获嘉县| 紫金县| 阳城县| 临高县| 镶黄旗| 平塘县| 东平县| 游戏| 汶川县| 思茅市| 兰西县| 同德县| 江津市| 天台县| 绵竹市| 绥化市| 定兴县| 北辰区| 文成县| 云梦县| 海伦市| 平利县| 嵊州市| 昌平区| 福清市| 祁阳县|