Java で文字を ASCII 数値に変換する方法
- Java で文字を ASCII 数値に変換するために文字を整数にキャストする
-
Java で文字から ASCII 値を取得するには
getBytes(StandardCharsets.US_ASCII)
を使用する -
Java 9+ で文字を ASCII 値に変換するには
String.chars()
を使用する
この記事では、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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn