JavaRush /Java-Blog /Random-DE /I/O-Streams und Strings in Java
articles
Level 15

I/O-Streams und Strings in Java

Veröffentlicht in der Gruppe Random-DE
Zur Eingabe der Daten wird eine Klasse aus der Java-Paketbibliothek verwendet Scanner. I/O-Streams und Strings in Java – 1Diese Klasse muss in das Programm importiert werden, in dem sie verwendet wird. Dies geschieht, bevor die öffentliche Klasse im Programmcode beginnt. Die Klasse verfügt über Methoden zum Lesen des nächsten Zeichens eines bestimmten Typs aus dem Standardeingabestream sowie zum Überprüfen der Existenz eines solchen Zeichens. Um mit einem Eingabestream zu arbeiten, müssen Sie ein Objekt der Scanner-Klasse erstellen und bei der Erstellung angeben, mit welchem ​​Eingabestream es verknüpft werden soll. Der Standardeingabestream (Tastatur) in Java wird durch ein Objekt dargestellt – System.in. Und der Standardausgabestream (Anzeige) ist ein Objekt, das Ihnen bereits bekannt ist System.out. Es gibt auch einen Standard-Stream für die Fehlerausgabe – System.err, aber die Arbeit damit würde den Rahmen unseres Kurses sprengen.
import java.util.Scanner; // импортируем класс
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // создаём ein Objekt класса Scanner
        int i = 2;
        System.out.print("Введите целое число: ");
        if(sc.hasNextInt()) { // возвращает истину если с потока ввода можно считать целое число
          i = sc.nextInt(); // считывает целое число с потока ввода и сохраняем в переменную
          System.out.println(i*2);
        } else {
          System.out.println("Вы ввели не целое число");
        }
    }
}
hasNextDouble()Die auf ein Objekt der Klasse angewendete Methode Scannerprüft, ob eine reelle Zahl vom Typ aus dem Eingabestream gelesen werden kann double, und die Methode nextDouble()liest diese. Wenn Sie versuchen, einen Wert zu lesen, ohne ihn vorher zu überprüfen, kann es sein, dass während der Programmausführung ein Fehler auftritt (der Debugger erkennt einen solchen Fehler nicht im Voraus). Versuchen Sie beispielsweise, eine reelle Zahl in das folgende Programm einzugeben:
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);
    }
}
Es gibt auch eine Methode nextLine(), mit der Sie eine ganze Zeichenfolge lesen können, d. h. Zeichenfolge, was bedeutet, dass der durch diese Methode erhaltene Wert in einem Klassenobjekt gespeichert werden muss String. Im folgenden Beispiel werden zwei solcher Objekte erstellt, dann werden nacheinander Benutzereingaben in sie geschrieben und dann wird auf dem Bildschirm eine Zeichenfolge angezeigt, die durch Kombination der eingegebenen Zeichenfolgen entsteht.
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);
    }
}
Es gibt auch eine Methode hasNext(), die prüft, ob im Eingabestream noch Zeichen vorhanden sind. Die Klasse Stringverfügt über viele nützliche Methoden, die auf Zeichenfolgen angewendet werden können (vor dem Methodennamen geben wir den Typ des zurückgegebenen Werts an):
  1. int length()– gibt die Länge der Zeichenfolge zurück (die Anzahl der darin enthaltenen Zeichen);
  2. boolean isEmpty()– prüft, ob die Zeichenfolge leer ist;
  3. String replace(a, b)– gibt eine Zeichenfolge zurück, in der das Zeichen a (Literal oder Variable vom Typ char) durch das Zeichen b ersetzt wird;
  4. String toLowerCase()– gibt eine Zeichenfolge zurück, in der alle Zeichen der ursprünglichen Zeichenfolge in Kleinbuchstaben umgewandelt werden;
  5. String toUpperCase()– gibt eine Zeichenfolge zurück, bei der alle Zeichen in der ursprünglichen Zeichenfolge in Großbuchstaben umgewandelt werden;
  6. boolean equals(s)– gibt „true“ zurück, wenn die Zeichenfolge, auf die die Methode angewendet wird, mit der im Methodenargument angegebenen Zeichenfolge s übereinstimmt (Sie können nicht ==wie bei anderen Objekten mit dem Zeichenfolgenoperator vergleichen);
  7. int indexOf(ch)– gibt den Index des Zeichens ch in einer Zeichenfolge zurück (der Index ist die Ordnungszahl des Zeichens, aber Zeichen werden beginnend bei Null nummeriert). Wenn das Zeichen überhaupt nicht gefunden wird, wird -1 zurückgegeben. Wenn ein Zeichen mehr als einmal in einer Zeichenfolge vorkommt, wird der Index seines ersten Vorkommens zurückgegeben.
  8. int lastIndexOf(ch)- ähnelt der vorherigen Methode, gibt jedoch den Index des letzten Vorkommens zurück, wenn das Symbol mehrmals in der Zeile vorkommt.
  9. int indexOf(ch,n)– gibt den Index des Zeichens ch in der Zeichenfolge zurück, beginnt die Überprüfung jedoch ab Index n (der Index ist die Ordnungszahl des Zeichens, aber die Zeichen werden beginnend bei Null nummeriert).
  10. char charAt(n)— gibt den Code des Zeichens zurück, das sich in der Zeile unter Index n befindet (der Index ist die Seriennummer des Zeichens, aber die Zeichen werden beginnend bei Null nummeriert).
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
    }
}
Ein Beispiel für ein Programm, das die Indizes aller Leerzeichen in einer vom Benutzer über die Tastatur eingegebenen Zeile anzeigt:
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);
            }
        }
    }
}
Link zur Quelle: I/O-Streams und Strings in Java
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION