如何在 Java 中轉換字元到 ASCII 數值

Rupam Yadav 2023年10月12日
  1. 在 Java 中將 char 轉換為 int 以將字元轉換為 ASCII 值
  2. 在 Java 中 getBytes(StandardCharsets.US_ASCII) 從一個字元中獲取 ASCII 值
  3. String.chars() 在 Java 9+ 中將字元轉換為 ASCII 值
如何在 Java 中轉換字元到 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 Yadav avatar Rupam Yadav avatar

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 ASCII

相關文章 - Java Char