Nombre, Chaîne de caractères et Tableau

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

En Java et dans d'autres langages orientés objet, les objets sont des collections de données liées qui sont associées à un ensemble de méthodes. Ces méthodes opèrent sur les objets, effectuent des calculs et modifient parfois les données de l'objet. Voici que nous présentons trois types d'objets intégrés Java simples mais importants : Number, String et Array.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/StringManipulationGroup -.-> java/strings("Strings") java/StringManipulationGroup -.-> java/stringbuffer_stringbuilder("StringBuffer/StringBuilder") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/wrapper_classes("Wrapper Classes") java/SystemandDataProcessingGroup -.-> java/math_methods("Math Methods") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/data_types -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/for_loop -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/strings -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/stringbuffer_stringbuilder -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/arrays -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/arrays_methods -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/wrapper_classes -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/math_methods -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} java/string_methods -.-> lab-178548{{"Nombre, Chaîne de caractères et Tableau"}} end

Number

Fondamentalement, nous utilisons des types de nombres primitifs tels que byte, int, double etc. Cependant, parfois, nous avons besoin d'utiliser des objets au lieu de types de données primitifs. Java fournit des classes d'emballage pour les types de données primitifs. Elles sont Byte, Short, Long, Integer, Double, Float etc. Un objet d'emballage peut être converti en retour en un type de données primitif. Ce processus est appelé déballeur. La classe Number est partie du package java.lang. Les packages seront abordés plus tard.

Voici une liste de certaines des méthodes de classe communes que les sous-classes de la classe Number implémentent :

  • xxxValue(): Convertit la valeur de cet objet Number en type de données xxx et la renvoie.
  • compareTo(): Compare cet objet Number avec l'argument.
  • equals(): Détermine si cet objet Number est égal à l'argument.
  • valueOf(): Renvoie un objet Integer contenant la valeur du primitif spécifié.
  • toString(): Renvoie un objet String représentant la valeur d'un int ou d'un Integer spécifié.
  • parseInt(): Cette méthode est utilisée pour obtenir le type int primitif à partir d'une certaine valeur String.
  • abs(): Renvoie la valeur absolue de l'argument.
  • ceil(): Renvoie le plus petit entier supérieur ou égal à l'argument. Renvoyé sous forme de double.
  • floor(): Renvoie le plus grand entier inférieur ou égal à l'argument. Renvoyé sous forme de double.
  • pow(): Renvoie la valeur du premier argument élevé à la puissance du second argument.
  • round(): Renvoie le long ou l'int le plus proche, tel que indiqué par le type de retour de la méthode, de l'argument.

Exemple :

Écrivez le code suivant dans le fichier /home/labex/project/numberTest.java :

public class numberTest
{
    public static void main(String[] args){
        Integer x = 1;    // emballe un int en un objet Integer
        x = x + 1;        // déballe l'Integer en un int
        System.out.println(Integer.parseInt("10"));  // analyse un int à partir d'une chaîne
        System.out.println( "x = " + x);
    }
}

Sortie :

Exécutez le fichier numberTest.java en utilisant la commande suivante :

javac /home/labex/project/numberTest.java
java numberTest

Voyez la sortie :

10
x = 2

String

Les chaînes de caractères sont des objets, donc vous pouvez vous demander : « Quelles sont les données contenues dans un objet String? » et « Quelles sont les méthodes que nous pouvons invoquer sur les objets String? » Les composants d'un objet String sont des caractères. Pas tous les caractères sont des lettres ; certains sont des nombres, d'autres sont des symboles spéciaux et le reste sont d'autres classes de caractères. Pour simplifier, nous les appelons tous des caractères. Il existe de nombreuses méthodes de chaîne dans la classe String, mais nous n'en utiliserons que quelques-unes. Le reste peut être consulté dans la documentation sur le site officiel.

Remarque : La classe String est immuable, donc une fois créée, un objet String ne peut pas être modifié. Si vous avez besoin de modifier beaucoup de chaînes de caractères, vous devriez utiliser les classes StringBuffer et StringBuilder.

Voici une liste de certaines des méthodes communes des classes String, StringBuffer et StringBuilder :

  • char charAt(int index) : Renvoie le caractère spécifié de la séquence actuellement représentée par le tampon de chaîne, tel que indiqué par l'argument index.
  • void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) : Les caractères sont copiés de ce tampon de chaîne dans le tableau de caractères de destination dst.
  • int indexOf(String str) : Renvoie l'index dans cette chaîne de la première occurrence de la sous-chaîne spécifiée.
  • int indexOf(String str, int fromIndex) : Renvoie l'index dans cette chaîne de la première occurrence de la sous-chaîne spécifiée, en commençant à l'index spécifié.
  • int lastIndexOf(String str) : Renvoie l'index dans cette chaîne de la dernière occurrence de la sous-chaîne spécifiée.
  • int lastIndexOf(String str, int fromIndex) : Renvoie l'index dans cette chaîne de la dernière occurrence de la sous-chaîne spécifiée, en cherchant en arrière à partir de l'index spécifié.
  • int length() : Renvoie la longueur (nombre de caractères) de ce tampon de chaîne.
  • String substring(int start) : Renvoie une nouvelle chaîne qui contient une sous-séquence de caractères actuellement contenus dans ce StringBuffer. La sous-chaîne commence à l'index spécifié et s'étend jusqu'à la fin du StringBuffer.
  • String substring(int start, int end) : Renvoie une nouvelle String qui contient une sous-séquence de caractères actuellement contenus dans ce StringBuffer.

Exemple :

Écrivez le code suivant dans le fichier /home/labex/project/stringTest.java :

public class stringTest
{
    public static void main(String[] args){
        String greeting = "Hello world!";
        String hello = new String("Hello!");
        System.out.println("greeting is: "+ greeting);
        System.out.println("hello is: "+ hello);
        System.out.println("length of greeting: " + greeting.length());
        System.out.println("first char of greeting: " + greeting.charAt(0));
        System.out.println("index of 'e' in hello: "+ hello.indexOf('e'));
        System.out.println("substring of greeting: "+ greeting.substring(6));  //substr: world

    }
}

Sortie :

Exécutez le fichier stringTest.java en utilisant la commande suivante :

javac /home/labex/project/stringTest.java
java stringTest

Voyez la sortie :

greeting is: Hello world!
hello is: Hello!
length of greeting: 12
first char of greeting: H
index of 'e' in hello: 1
substring of greeting: world!

Array

Une structure de tableau est utilisée pour stocker une collection de données, mais il est souvent plus utile de considérer un tableau comme une collection de variables d'un seul type. Au lieu de déclarer des variables individuelles, telles que number0, number1,..., number99, vous déclarez une variable de tableau numbers et utilisez numbers[0], numbers[1],..., numbers[99] pour représenter les variables individuelles. Le premier élément du tableau se trouve à l'index 0.

Voici une liste de certaines des méthodes communes que les tableaux ont :

  • public static int binarySearch(Object[] a, Object key) : Recherche la valeur spécifiée dans le tableau spécifié en utilisant l'algorithme de recherche dichotomique. Le tableau doit être trié avant d'appeler cette méthode. Cela renvoie l'index de la clé de recherche, s'il est contenu dans le tableau ; sinon, il renvoie (–(point d'insertion + 1)).
  • public static boolean equals(long[] a, long[] a2) : Renvoie true si les deux tableaux de long spécifiés sont égaux l'un à l'autre. Deux tableaux sont considérés égaux s'ils contiennent le même nombre d'éléments et si toutes les paires d'éléments correspondants dans les deux tableaux sont égales. Cela renvoie true si les deux tableaux sont égaux. La même méthode peut également être utilisée pour d'autres types de données primitifs (byte, short, int etc.).
  • public static void fill(int[] a, int val) : Affecte la valeur int spécifiée à chaque élément du tableau de int spécifié. La même méthode peut également être utilisée pour d'autres types de données primitifs (byte, short etc.).
  • public static void sort(Object[] a) : Trie le tableau d'objets spécifié par ordre croissant selon l'ordre naturel de ses éléments. La même méthode peut également être utilisée pour les types de données primitifs (byte, short, int etc.).

Exemple :

Écrivez le code suivant dans le fichier /home/labex/project/arrayTest.java :

public class arrayTest
{
    public static void main(String[] args){
        // vous pouvez utiliser new pour initialiser un tableau vide.
        String[] nameArray1 = new String[5];
        // remplissez les éléments vides de nameArray1 avec le même nom "abc"
        java.util.Arrays.fill(nameArray1,"abc");
        // la boucle for peut également être utilisée pour itérer sur un tableau
        for (String name:nameArray1){
            System.out.println(name);
        }
        // vous pouvez initialiser le tableau avec quelques valeurs.
        String[] nameArray2 = {"Candy", "Fancy", "Ann", "Ella", "Bob"};
        // vous pouvez obtenir la longueur du tableau
        System.out.println("Length of nameArray2: " + nameArray2.length);
        // vous pouvez obtenir une valeur par index
        System.out.println("The last item of nameArray2 is " + nameArray2[4]);
        // triez un objet de tableau
        java.util.Arrays.sort(nameArray2);
        System.out.println("Sorted nameArray2 by alphabet:");
        for(String name:nameArray2){
            System.out.println(name);
        }
    }
}

Sortie :

Exécutez le fichier arrayTest.java en utilisant la commande suivante :

javac /home/labex/project/arrayTest.java
java arrayTest

Voyez la sortie :

abc
abc
abc
abc
abc
Length of nameArray2: 5
The last item of nameArray2 is Bob
Sorted nameArray2 by alphabet:
Ann
Bob
Candy
Ella
Fancy

Résumé

La plupart des tâches consistent à manipuler des données telles que des nombres et des chaînes de caractères, donc utiliser les classes intégrées de Java pour effectuer les tâches est facile et efficace. Pour des utilisations avancées, vous pouvez lire la documentation officielle.