Java で文字を ASCII 数値に変換する方法

Rupam Yadav 2023年10月12日
  1. Java で文字を ASCII 数値に変換するために文字を整数にキャストする
  2. Java で文字から ASCII 値を取得するには getBytes(StandardCharsets.US_ASCII) を使用する
  3. Java 9+ で文字を ASCII 値に変換するには String.chars() を使用する
Java で文字を ASCII 数値に変換する方法

この記事では、Java で与えられた文字を ASCII 数値に変換するための最も簡単で効果的な方法を、例を挙げながら発見していきます。

Java で文字を ASCII 数値に変換するために文字を整数にキャストする

文字を ASCII の数値に変換する最も簡単な方法の 1つは、文字を int にキャストすることです。ここでは 1 文字の話をしているので、複数の文字を使用することはできません。

下の例を見てください。一重引用符で囲まれた文字 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 で文字から ASCII 値を取得するには getBytes(StandardCharsets.US_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

Java 9+ で文字を ASCII 値に変換するには String.chars() を使用する

このメソッドでは、Java 9 で追加された API を利用します。String.chars() を用いて IntStream を取得し、.boxed() を用いて Integer オブジェクトのストリームを取得します。これは数値的に 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