如何在 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