Converti carattere in valore numerico ASCII in Java

Rupam Yadav 12 ottobre 2023
  1. Trasmetti char a int per convertire un carattere in un valore ASCII in Java
  2. getBytes(StandardCharsets.US_ASCII) per ottenere il valore ASCII da un carattere in Java
  3. String.chars() per convertire i caratteri in valori ASCII in Java 9+
Converti carattere in valore numerico ASCII in Java

Questo articolo scoprirà i metodi più semplici ed efficaci per convertire un dato carattere in un valore numerico ASCII in Java con esempi.

Trasmetti char a int per convertire un carattere in un valore ASCII in Java

Uno dei modi più semplici per convertire il carattere in un valore numerico ASCII è eseguire il cast del carattere in int. Dato che stiamo parlando di un singolo carattere, non possiamo usare più caratteri.

Guarda l’esempio qui sotto. Notare che stiamo usando il carattere a racchiuso tra virgolette singole, rendendo il suo tipo di dati char.

public class Main {
  public static void main(String[] args) {
    int asciiValue = 'a';
    System.out.println("ASCII Numeric Value: " + asciiValue);
  }
}

Produzione:

ASCII Numeric Value: 97

getBytes(StandardCharsets.US_ASCII) per ottenere il valore ASCII da un carattere in Java

Affinché questo esempio funzioni, prima prenderemo il nostro carattere come una stringa e poi convertiremo quella stringa in un array di byte. StandardCharsets.US_ASCII garantirà che avremo il giusto valore di output.

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]);
  }
}

Produzione:

ASCII Numeric Value: 98

Il vantaggio di questo approccio è che possiamo ottenere direttamente il valore ASCII di più caratteri poiché i caratteri sono in una stringa.

Abbiamo una stringa s con 4 caratteri. Possiamo ottenere valori numerici ASCII per tutti questi caratteri come abbiamo fatto di seguito.

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]);
  }
}

Produzione:

ASCII Numeric Value: 98
ASCII Numeric Value: 97
ASCII Numeric Value: 108
ASCII Numeric Value: 108

String.chars() per convertire i caratteri in valori ASCII in Java 9+

In questo metodo, useremo un’API aggiunta in Java 9. Possiamo ottenere un IntStream usando String.chars() e poi un flusso di oggetti Integer usando .boxed(). Ci darà numericamente i valori ASCII che possiamo poi inserire in un List<Integer> da scorrere.

Questo esempio prende come input la stringa building e stampa i valori ASCII di ogni carattere nella stringa.

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);
    }
  }
}

Produzione:

ASCII value 98
ASCII value 117
ASCII value 105
ASCII value 108
ASCII value 100
ASCII value 105
ASCII value 110
ASCII value 103
Autore: 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

Articolo correlato - Java ASCII

Articolo correlato - Java Char