Analyser un entier non signé

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à analyser une valeur de chaîne de caractères en tant qu'entier décimal non signé à l'aide de la méthode parseUnsignedInt() en Java. Nous allons étudier la syntaxe, les paramètres et les types de retour de la méthode, et apprendre à l'utiliser à l'aide de quelques exemples.

Créer un nouveau fichier Java

Tout d'abord, nous devons créer un nouveau fichier Java dans le répertoire ~/projet. Nous pouvons le faire en ouvrant le terminal et en tapant :

touch ~/projet/UnsignedIntegerParser.java

Cela ouvrira une fenêtre d'éditeur Nano vide.

Importer la classe Integer

Nous devons importer la classe Integer du package java.lang, car elle contient la méthode parseUnsignedInt(). Nous pouvons le faire en ajoutant le code suivant dans notre fichier :

import java.lang.Integer;

Analyser un entier non signé à partir d'une valeur de chaîne de caractères

Maintenant, voyons comment utiliser la méthode parseUnsignedInt(). Nous pouvons appeler cette méthode sur une valeur de chaîne de caractères et elle retournera son objet Integer décimal non signé équivalent. Voici un exemple :

String s = "123";
int n = Integer.parseUnsignedInt(s); //Convertit la chaîne passée en tant qu'entier non signé
System.out.println(n);

La sortie de ce code sera 123.

Gérer les entrées invalides

Si nous fournissons une entrée invalide à la méthode parseUnsignedInt(), elle jettera une NumberFormatException. Nous pouvons gérer cette exception à l'aide d'un bloc try-catch. Voici un exemple :

try {
  String s = "-123";
  int n = Integer.parseUnsignedInt(s); //Convertit la chaîne passée en tant qu'entier non signé
  System.out.println(n);
} catch(NumberFormatException ex) {
  System.out.println("Entrée invalide.");
}

Dans ce code, nous essayons d'analyser un entier négatif, ce qui est invalide. La méthode parseUnsignedInt() jettera une NumberFormatException, qui est capturée par le bloc catch. La sortie de ce code sera Entrée invalide..

Lecture d'une entrée à partir de la console

Nous pouvons également lire une entrée à partir de la console et la parser comme un entier non signé. Voici un exemple :

Scanner scanner = new Scanner(System.in);
System.out.print("Entrez un entier positif : ");
String s = scanner.nextLine();
try {
  int n = Integer.parseUnsignedInt(s); //Convertit la chaîne passée en tant qu'entier non signé
  System.out.println(n);
} catch(NumberFormatException ex) {
  System.out.println("Entrée invalide.");
}

Dans ce code, nous utilisons la classe Scanner pour lire une entrée à partir de la console. Nous parsons ensuite la chaîne d'entrée comme un entier non signé à l'aide de la méthode parseUnsignedInt(). Enfin, nous capturons toutes les exceptions qui peuvent se produire lors du parsing de l'entrée.

Pour exécuter ce code dans le terminal, nous devons tout d'abord le compiler en utilisant la commande :

javac UnsignedIntegerParser.java

Ensuite, nous pouvons l'exécuter en utilisant la commande :

java UnsignedIntegerParser

Analyse d'entiers non signés à partir d'une liste de chaînes de caractères

Nous pouvons également analyser des entiers non signés à partir d'une liste de chaînes de caractères. Voici un exemple :

List<String> stringList = Arrays.asList("123", "456", "789");
for (String s : stringList) {
  try {
    int n = Integer.parseUnsignedInt(s); //Convertit la chaîne passée en tant qu'entier non signé
    System.out.println(n);
  } catch(NumberFormatException ex) {
    System.out.println("Entrée invalide : " + s);
  }
}

Dans ce code, nous parcourons une liste de chaînes de caractères et analysons chaque chaîne comme un entier non signé à l'aide de la méthode parseUnsignedInt(). Si la chaîne n'est pas un entier non signé valide, nous capturons l'exception et affichons un message d'erreur.

Utilisation d'une fonction d'aide

Pour éviter de répéter le même bloc try-catch chaque fois que nous analysons un entier non signé, nous pouvons créer une fonction d'aide qui prend une chaîne de caractères en entrée et renvoie un entier non signé. Voici un exemple :

public static int parseUnsignedInt(String s) {
  try {
    return Integer.parseUnsignedInt(s); //Convertit la chaîne passée en tant qu'entier non signé
  } catch(NumberFormatException ex) {
    return -1; //Renvoie -1 pour une entrée invalide
  }
}

Dans ce code, nous définissons une fonction parseUnsignedInt() qui prend une chaîne de caractères en entrée et renvoie un entier non signé. Si l'entrée n'est pas un entier non signé valide, la fonction renvoie -1. Nous pouvons ensuite utiliser cette fonction pour analyser des entiers non signés sans nous soucier des exceptions. Voici un exemple de l'utilisation de la fonction :

String s = "123";
int n = parseUnsignedInt(s);
System.out.println(n); //Sortie : 123

s = "-123";
n = parseUnsignedInt(s);
System.out.println(n); //Sortie : -1

Gérer des entiers non signés plus grands

Si nous avons besoin d'analyser des entiers non signés plus grands, nous pouvons utiliser la méthode parseUnsignedInt() de la classe UnsignedInteger au lieu de la classe Integer. Cette méthode renvoie un long au lieu d'un int. Voici un exemple :

String s = "4294967295"; //Valeur maximale d'un entier non signé 32 bits
long n = Long.parseUnsignedLong(s);
System.out.println(n); //Sortie : 4294967295

Utilisation de la base (radix)

Si nous voulons analyser une chaîne de caractères qui représente un nombre dans une base autre que 10, nous pouvons utiliser la méthode parseInt() qui prend un paramètre supplémentaire radix. Voici un exemple :

String s = "1101"; //Représentation binaire de 13
int n = Integer.parseUnsignedInt(s, 2); //Analyser en binaire
System.out.println(n); //Sortie : 13

Sortir de Nano et exécuter le code

Pour quitter Nano, appuyez sur Ctrl+X, puis appuyez sur Y pour enregistrer le fichier, puis appuyez sur Entrée.

Pour exécuter le code dans le terminal, nous pouvons le compiler en utilisant la commande :

javac UnsignedIntegerParser.java

Ensuite, nous pouvons l'exécuter en utilisant la commande :

java UnsignedIntegerParser

Récapitulatif

Dans ce laboratoire, nous avons appris à analyser une valeur de chaîne de caractères en tant qu'entier décimal non signé à l'aide de la méthode parseUnsignedInt() en Java. Nous avons également appris à gérer les entrées invalides, à lire des entrées à partir du terminal, à analyser des entiers non signés à partir d'une liste de chaînes de caractères et à utiliser des fonctions d'aide. Nous avons également appris à analyser des entiers non signés plus grands, à utiliser la base (radix) et à exécuter notre code dans le terminal.