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

Rupam Yadav 2023年10月12日 Java Java ASCII Java Char
  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
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: 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