Java 中使用 getBytes(Charset) 方法將字串轉換為位元組陣列


Java 程式設計涉及將字串轉換為位元組陣列,這是一種用於多種目的(包括網路通訊或資料加密)的實用技術。為了實現這一點,String 類提供了一系列用於此類轉換的方法,其中 getBytes() 方法就是其中之一。需要注意的是,選擇合適的編碼至關重要,因為每種編碼在字元到位元組值對映方面都使用不同的規則。

在本文中,我們將深入探討兩種使用 Java 的 getBytes() 方法將字串轉換為位元組陣列的技術。此外,我們將對每種方法採用的演算法進行詳細解釋。

使用的方法

  • 方法 1 − 在此方法中,我們將建立一個字串,然後使用 getBytes() 方法將其轉換為位元組陣列。在本例中,我們將使用 UTF-8 編碼。

  • 方法 2 − 在此方法中,我們將透過手動指定位元組值來建立位元組陣列。然後,我們將使用 String 建構函式從位元組陣列建立字串。

語法

getBytes() 方法是 Java 中 String 類的一個成員方法。它接受一個引數,即用於將字串編碼為位元組陣列的字元集。getBytes() 方法的語法如下所示:

public byte[] getBytes(Charset charset)

演算法

在 Java 中利用 getBytes() 函式將字串轉換為位元組陣列的方法可以歸納為以下幾個步驟:

  • 步驟 1 − 使用 Charset 類的 forName() 方法例項化一個與所需編碼相對應的 Charset 物件。此步驟需要提供編碼名稱作為字串引數。

  • 步驟 2 − 呼叫 String 類的 getBytes() 方法,並將之前建立的 Charset 物件作為引數傳入。此呼叫透過使用指定的編碼生成表示字串中字元的位元組陣列。

  • 步驟 3 − 根據需要操作生成的位元組陣列。Java 透過其程式語言提供了各種處理位元組陣列的技術。

使用 getBytes() 函式是將字串轉換為 Java 中的位元組陣列的有效方法。它允許您指定在轉換過程中要使用的編碼。這至關重要,因為不同的編碼具有不同的字元到位元組值對映規則。使用錯誤的編碼可能會導致資料損壞。透過遵循上述演算法,可以確保字串將成功且安全地轉換為位元組陣列。

方法 1

在此方法中,我們首先建立了一個我們希望轉換為位元組陣列的字串。然後,我們使用 String 類的 getBytes() 方法將字串轉換為位元組陣列。我們定義了我們希望應用於轉換的編碼,在本例中為 UTF-8。為了確保位元組陣列正確生成,我們將其打印出來。

以下是相同程式的程式碼。

示例

import java.nio.charset.Charset;

public class StringToByteArrayExample1 {
   public static void main(String[] args) {
      // Create a String
      String str = "Hello, world!";
        
      // Convert the String to a byte array using the UTF-8 encoding
      Charset utf8 = Charset.forName("UTF-8");
      byte[] byteArray = str.getBytes(utf8);
       
      // Print the byte array
      for (byte b : byteArray) {
         System.out.print(b + " ");
      }
   }
}

輸出

72 101 108 108 111 44 32 119 111 114 108 100 33

方法 2

此方法包括手動輸入位元組值以構造位元組陣列。然後使用 String 建構函式將位元組陣列轉換為字串。

以下是相同程式的程式碼。

示例

import java.nio.charset.Charset;

public class StringToByteArrayExample2 {
   public static void main(String[] args) {
      // Create a byte array
      byte[] byteArray = {72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33};
        
      // Convert the byte array to a String using the UTF-8 encoding
      Charset utf8 = Charset.forName("UTF-8");
      String str = new String(byteArray, utf8);
        
      // Print the String
      System.out.println(str);
   }
}

輸出

Hello, world!

結論

本文介紹了 containsKey() 函式,用於確定某個鍵是否包含在雜湊對映中。此方法接受一個鍵作為輸入,如果在雜湊對映中找到該鍵,則返回 true;否則,返回 false。

更新於: 2023年7月18日

137 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.