亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(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,具體實(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

注意:這種方式使用平臺默認(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這個類

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ù)組作為輸入類型

補(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[]打印到控制臺看

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)文章

  • SpringMVC攔截器超詳細(xì)解讀

    SpringMVC攔截器超詳細(xì)解讀

    SpringMVC的處理器攔截器,類似于Servlet開發(fā)中的過濾器Filter,用于對處理器進(jìn)行預(yù)處理和后處理。?依賴于web框架,在實(shí)現(xiàn)上基于Java的反射機(jī)制,屬于面向切面編程(AOP)的一種運(yùn)用
    2022-07-07
  • 詳解spring 配置的兩種方式:JAVA配置和注解配置

    詳解spring 配置的兩種方式:JAVA配置和注解配置

    這篇文章主要介紹了詳解spring 配置的兩種方式:JAVA配置和注解配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 如何簡單的理解依賴注入詳解

    如何簡單的理解依賴注入詳解

    一直對依賴注入理解不清楚,最近突然理解了,所以下面這篇文章主要給大家介紹了關(guān)于如何簡單的理解依賴注入的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • 老生常談 Java中的繼承(必看)

    老生常談 Java中的繼承(必看)

    下面小編就為大家?guī)硪黄仙U?Java中的繼承(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • JAVA中使用JSON進(jìn)行數(shù)據(jù)傳遞示例

    JAVA中使用JSON進(jìn)行數(shù)據(jù)傳遞示例

    本篇文章主要介紹了JAVA中使用JSON進(jìn)行數(shù)據(jù)傳遞示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java中instanceof關(guān)鍵字實(shí)例講解

    Java中instanceof關(guān)鍵字實(shí)例講解

    大家好,本篇文章主要講的是Java中instanceof關(guān)鍵字實(shí)例講解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • maven-assembly-plugin報紅無法加載報錯:Plugin?‘maven-assembly-plugin:‘?not?found

    maven-assembly-plugin報紅無法加載報錯:Plugin?‘maven-assembly-plugin

    maven-assembly-plugin是一個常用的打包插件,但是在使用過程中經(jīng)常會遇到各種報錯,本文就來介紹一下maven-assembly-plugin報紅無法加載報錯,具有一定的參考價值
    2023-08-08
  • java-collection中的null,isEmpty用法

    java-collection中的null,isEmpty用法

    這篇文章主要介紹了java-collection中的null,isEmpty用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java并發(fā)編程之柵欄(CyclicBarrier)實(shí)例介紹

    Java并發(fā)編程之柵欄(CyclicBarrier)實(shí)例介紹

    這篇文章主要介紹了Java并發(fā)編程之柵欄(CyclicBarrier)實(shí)例介紹,柵欄類似閉鎖,但是它們是有區(qū)別的,需要的朋友可以參考下
    2015-04-04
  • 詳解Java中運(yùn)算符及用法

    詳解Java中運(yùn)算符及用法

    這篇文章主要介紹了詳解Java中運(yùn)算符以及相關(guān)的用法講解,一起跟著小編學(xué)習(xí)下吧。
    2017-12-12

最新評論