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

Rupam Yadav 2023年1月30日 2020年9月26日
  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
Author: 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