在 Java 中將字串轉換為十六進位制
-
使用
char
和Integer.toHexString()
陣列將字串轉換為十六進位制 -
使用
byte
陣列和字串格式化程式將字串轉換為十六進位制 - 使用 Apache Commons Codec 將字串轉換為十六進位制
在本文中,我們將學習如何使用下面通過示例顯示的四種方法將字串轉換為十六進位制值。
使用 char
和 Integer.toHexString()
陣列將字串轉換為十六進位制
第一種技術使用將字串轉換為 char
陣列。我們首先建立一個 StringBuilder()
物件,我們用它來附加字元以建立整個十六進位制值字串。要將字串轉換為 char
陣列,我們使用 toCharArray()
命令。之後,我們使用增強迴圈和 Integer.toHexString()
方法,該方法接受單個 char
作為引數。
函式 Integer.toHexString()
將 char
轉換為十六進位制,然後我們使用 stringBuilder.append()
方法附加字串並將其顯示到輸出中。
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "This is a string";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
StringBuilder stringBuilder = new StringBuilder();
char[] charArray = str.toCharArray();
for (char c : charArray) {
String charToHex = Integer.toHexString(c);
stringBuilder.append(charToHex);
}
System.out.println("Converted Hex from String: "+stringBuilder.toString());
}
}
輸出:
Converted Hex from String: 54686973206973206120737472696e67
使用 byte
陣列和字串格式化程式將字串轉換為十六進位制
在此示例中,我們首先使用 getBytes()
函式將字串轉換為位元組陣列 getBytesFromString
。我們必須將 getBytes()
方法中的字符集作為引數傳遞。一旦我們獲得了位元組陣列,我們就建立了一個 BigInteger
物件,並在建構函式中,我們傳遞了一個 int
值 1 和位元組陣列作為引數。
我們使用 String.format()
方法將 bigInteger
物件值格式化為十六進位制字串。一旦我們得到十六進位制字串,我們就列印它。
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] getBytesFromString = str.getBytes(StandardCharsets.UTF_8);
BigInteger bigInteger = new BigInteger(1, getBytesFromString);
String convertedResult = String.format("%x", bigInteger);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
輸出:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
使用 Apache Commons Codec 將字串轉換為十六進位制
在將字串轉換為十六進位制 Java 的最後一種方法中,我們使用了 Apache Commons Codec 庫。要將庫包含在我們的專案中,我們將使用以下 maven 依賴項:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
與上一個示例一樣,我們將從要在此程式中轉換的字串中獲取一個 byte
陣列。然後我們使用 Apache Commons-Codec 庫的 Hex
類並呼叫其靜態方法 encodeHexString()
並傳遞 byteArray
作為其引數。然後我們得到轉換為十六進位制的字串作為回報。
我們可以使用函式 encodeHex()
代替 encodeHexString()
,但它會返回一個 char
陣列,我們必須將其轉換為字串;然而,結果將是相同的。
import org.apache.commons.codec.binary.Hex;
import java.nio.charset.StandardCharsets;
public class StringToHex {
public static void main(String[] args) {
String stringToConvert = "We have to convert this string to hex";
convertStringToHex(stringToConvert);
}
private static void convertStringToHex(String str) {
byte[] byteArray = str.getBytes(StandardCharsets.UTF_8);
String convertedResult = Hex.encodeHexString(byteArray);
System.out.println("Converted Hex from String: " + convertedResult);
}
}
輸出:
Converted Hex from String: 5765206861766520746f20636f6e76657274207468697320737472696e6720746f20686578
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn相關文章 - Java String
- 如何在 Java 中以十六進位制字串轉換位元組陣列
- 如何在 Java 中執行字串到字串陣列的轉換
- 如何將 Java 字串轉換為位元組
- 如何從 Java 中的字串中刪除子字串
- 用 Java 生成隨機字串
- Java 中的交換方法