如何在 Java 中轉換字元到 ASCII 數值
Rupam Yadav
2023年10月12日
-
在 Java 中將
char
轉換為int
以將字元轉換為 ASCII 值 -
在 Java 中
getBytes(StandardCharsets.US_ASCII)
從一個字元中獲取 ASCII 值 -
String.chars()
在 Java 9+ 中將字元轉換為 ASCII 值
本文將通過例項發現在 Java 中把一個給定字元轉換成 ASCII 數值的最簡單有效的方法。
在 Java 中將 char
轉換為 int
以將字元轉換為 ASCII 值
將該字元轉換為 ASCII 數值的最簡單方法之一是將該字元轉換為整型 int
。由於我們討論的是單個字元,我們不能使用多個字元。
請看下面的例子。注意我們使用單引號內的字元 a
,使其資料型別為 char
。
public class Main {
public static void main(String[] args) {
int asciiValue = 'a';
System.out.println("ASCII Numeric Value: " + asciiValue);
}
}
輸出:
ASCII Numeric Value: 97
在 Java 中 getBytes(StandardCharsets.US_ASCII)
從一個字元中獲取 ASCII 值
為了使這個例子有效,我們將首先得到我們的字元作為一個字串,然後將該字串轉換為一個位元組陣列。StandardCharsets.US_ASCII
將確保我們得到正確的輸出值。
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) {
String s = "b";
byte[] bytes = s.getBytes(StandardCharsets.US_ASCII);
System.out.println("ASCII Numeric Value: " + bytes[0]);
}
}
輸出:
ASCII Numeric Value: 98
這種方法的好處是,我們可以直接得到多個字元的 ASCII 值,因為字元在一個字串中。
我們有一個包含 4 個字元的字串 s
。我們可以按照下面的步驟獲取所有這些字元的 ASCII 數值。
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) {
String s = "ball";
byte[] bytes = s.getBytes(StandardCharsets.US_ASCII);
System.out.println("ASCII Numeric Value of b: " + bytes[0]);
System.out.println("ASCII Numeric Value of a: " + bytes[1]);
System.out.println("ASCII Numeric Value of l: " + bytes[2]);
System.out.println("ASCII Numeric Value of l: " + bytes[3]);
}
}
輸出:
ASCII Numeric Value: 98
ASCII Numeric Value: 97
ASCII Numeric Value: 108
ASCII Numeric Value: 108
String.chars()
在 Java 9+ 中將字元轉換為 ASCII 值
在這個方法中,我們將使用 Java 9 中新增的 API,我們可以使用 String.chars()
得到一個 IntStream
,然後使用 .boxed()
得到一個 Integer
物件的 Stream。它將以數字形式給我們提供 ASCII 值,然後我們可以將這些值放入 List<Integer>
中進行迴圈。
這個例子將字串 building
作為輸入,並列印出字串中每個字元的 ASCII 值。
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String stringValue = "building";
List<Integer> listOfIntegers = stringValue.chars().boxed().collect(Collectors.toList());
for (int i : listOfIntegers) {
System.out.println("ASCII value " + i);
}
}
}
輸出:
ASCII value 98
ASCII value 117
ASCII value 105
ASCII value 108
ASCII value 100
ASCII value 105
ASCII value 110
ASCII value 103
作者: Rupam Yadav
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