JavaRush /Blog Java /Random-FR /Flux et chaînes d'E/S en Java
articles
Niveau 15

Flux et chaînes d'E/S en Java

Publié dans le groupe Random-FR
Une classe de la bibliothèque de packages Java est utilisée pour saisir les données Scanner. Flux et chaînes d'E/S en Java - 1Cette classe doit être importée dans le programme où elle sera utilisée. Ceci est fait avant le début de la classe publique dans le code du programme. La classe dispose de méthodes pour lire le caractère suivant d'un type donné à partir du flux d'entrée standard, ainsi que pour vérifier l'existence d'un tel caractère. Pour travailler avec un flux d'entrée, vous devez créer un objet de la classe Scanner , en précisant lors de la création à quel flux d'entrée il sera associé. Le flux d'entrée standard (clavier) en Java est représenté par un objet - System.in. Et le flux de sortie standard (affichage) est un objet qui vous est déjà familier System.out. Il existe également un flux standard pour la sortie d'erreur - System.err, mais son utilisation dépasse le cadre de notre cours.
import java.util.Scanner; // импортируем класс
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // создаём an object класса Scanner
        int i = 2;
        System.out.print("Введите целое число: ");
        if(sc.hasNextInt()) { // возвращает истину если с потока ввода можно считать целое число
          i = sc.nextInt(); // считывает целое число с потока ввода и сохраняем в переменную
          System.out.println(i*2);
        } else {
          System.out.println("Вы ввели не целое число");
        }
    }
}
La méthode hasNextDouble()appliquée à un objet de la classe Scannervérifie si un nombre réel de types peut être lu à partir du flux d'entrée double, et la méthode nextDouble()le lit. Si vous essayez de lire une valeur sans la vérifier au préalable, vous risquez d'obtenir une erreur lors de l'exécution du programme (le débogueur ne détectera pas une telle erreur à l'avance). Par exemple, essayez de saisir un nombre réel dans le programme ci-dessous :
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double  i = sc.nextDouble(); // если ввести букву s, то случится ошибка во время исполнения
        System.out.println(i/3);
    }
}
Il existe également une méthode nextLine()qui permet de lire une séquence entière de caractères, c'est-à-dire chaîne, ce qui signifie que la valeur obtenue via cette méthode doit être stockée dans un objet de classe String. Dans l'exemple suivant, deux de ces objets sont créés, puis les entrées de l'utilisateur y sont écrites une par une, puis une chaîne est affichée à l'écran, obtenue en combinant les séquences de caractères saisies.
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1, s2;
        s1 = sc.nextLine();
        s2 = sc.nextLine();
        System.out.println(s1 + s2);
    }
}
Il existe également une méthode hasNext()qui vérifie s'il reste des caractères dans le flux d'entrée. La classe Stringpossède de nombreuses méthodes utiles qui peuvent être appliquées aux chaînes (avant le nom de la méthode, nous indiquerons le type de valeur qu'elle renvoie) :
  1. int length()— renvoie la longueur de la chaîne (le nombre de caractères qu'elle contient) ;
  2. boolean isEmpty()— vérifie si la chaîne est vide ;
  3. String replace(a, b)— renvoie une chaîne où le caractère a (littéral ou variable de type char) est remplacé par le caractère b ;
  4. String toLowerCase()— renvoie une chaîne dans laquelle tous les caractères de la chaîne d'origine sont convertis en minuscules ;
  5. String toUpperCase()— renvoie une chaîne dans laquelle tous les caractères de la chaîne d'origine sont convertis en majuscules ;
  6. boolean equals(s)— renvoie true si la chaîne à laquelle la méthode est appliquée correspond à la chaîne spécifiée dans l'argument de la méthode (vous ne pouvez pas comparer en utilisant l' ==opérateur de chaîne, comme tout autre objet) ;
  7. int indexOf(ch)— renvoie l'index du caractère ch dans une chaîne (l'index est le numéro ordinal du caractère, mais les caractères sont numérotés à partir de zéro). Si le caractère n'est pas trouvé du tout, il renverra -1. Si un caractère apparaît plus d'une fois dans une chaîne, il renverra l'index de sa première occurrence.
  8. int lastIndexOf(ch)- similaire à la méthode précédente, mais renvoie l'index de la dernière occurrence si le symbole apparaît plusieurs fois dans la ligne.
  9. int indexOf(ch,n)— renvoie l'index du caractère ch dans la chaîne, mais commence la vérification à partir de l'index n (l'index est le numéro ordinal du caractère, mais les caractères sont numérotés à partir de zéro).
  10. char charAt(n)— renvoie le code du caractère situé dans la ligne sous l'index n (l'index est le numéro de série du caractère, mais les caractères sont numérotés à partir de zéro).
public class Main {
    public static void main(String[] args) {
        String s1 = "firefox";
        System.out.println(s1.toUpperCase()); // выведет «FIREFOX»
        String s2 = s1.replace('o', 'a');
        System.out.println(s2); // выведет «firefax»
        System.out.println(s2.charAt(1)); // выведет «i»
        int i;
        i = s1.length();
        System.out.println(i); // выведет 7
        i = s1.indexOf('f');
        System.out.println(i); // выведет 0
        i = s1.indexOf('r');
        System.out.println(i); // выведет 2
        i = s1.lastIndexOf('f');
        System.out.println(i); // выведет 4
        i = s1.indexOf('t');
        System.out.println(i); // выведет -1
        i = s1.indexOf('r',3);
        System.out.println(i); // выведет -1
    }
}
Un exemple de programme qui affichera les index de tous les espaces dans une ligne saisie par l'utilisateur à partir du clavier :
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        for(int i=0; i < s.length(); i++) {
            if(s.charAt(i) == ' ') {
                System.out.println(i);
            }
        }
    }
}
Lien vers la source : flux et chaînes d'E/S en Java
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION