JavaRush /Blog Java /Random-MS /Aliran dan Rentetan I/O dalam Java
articles
Tahap

Aliran dan Rentetan I/O dalam Java

Diterbitkan dalam kumpulan
Kelas daripada perpustakaan pakej Java digunakan untuk memasukkan data Scanner. Aliran dan Rentetan I/O dalam Java - 1Kelas ini mesti diimport dalam program di mana ia akan digunakan. Ini dilakukan sebelum kelas awam bermula dalam kod program. Kelas mempunyai kaedah untuk membaca aksara seterusnya bagi jenis tertentu daripada aliran input standard, serta untuk menyemak kewujudan aksara sedemikian. Untuk bekerja dengan strim input, anda perlu mencipta objek kelas Pengimbas , menentukan semasa penciptaan aliran input yang akan dikaitkan dengannya. Aliran input standard (papan kekunci) dalam Java diwakili oleh objek - System.in. Dan aliran keluaran standard (paparan) ialah objek yang sudah biasa kepada anda System.out. Terdapat juga aliran standard untuk output ralat - System.err, tetapi bekerja dengannya adalah di luar skop kursus kami.
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("Вы ввели не целое число");
        }
    }
}
Kaedah hasNextDouble()yang digunakan pada objek kelas Scannermenyemak sama ada bilangan sebenar jenis boleh dibaca daripada aliran input doubledan kaedah nextDouble()membacanya. Jika anda cuba membaca nilai tanpa menyemaknya terlebih dahulu, anda mungkin mendapat ralat semasa pelaksanaan program (penyahpepijat tidak akan mengesan ralat sedemikian terlebih dahulu). Sebagai contoh, cuba masukkan nombor sebenar dalam program di bawah:
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);
    }
}
Terdapat juga kaedah nextLine()yang membolehkan anda membaca keseluruhan urutan aksara, i.e. rentetan, yang bermaksud nilai yang diperoleh melalui kaedah ini mesti disimpan dalam objek kelas String. Dalam contoh berikut, dua objek sedemikian dicipta, kemudian input pengguna ditulis kepada mereka satu demi satu, dan kemudian satu rentetan dipaparkan pada skrin, diperoleh dengan menggabungkan urutan aksara yang dimasukkan.
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);
    }
}
Terdapat juga kaedah hasNext()yang menyemak sama ada terdapat sebarang aksara yang tersisa dalam aliran input. Kelas Stringmempunyai banyak kaedah berguna yang boleh digunakan pada rentetan (sebelum nama kaedah kami akan menunjukkan jenis nilai yang dikembalikan):
  1. int length()— mengembalikan panjang rentetan (bilangan aksara di dalamnya);
  2. boolean isEmpty()— menyemak sama ada rentetan itu kosong;
  3. String replace(a, b)— mengembalikan rentetan di mana aksara a (harfiah atau pembolehubah jenis aksara) digantikan dengan aksara b;
  4. String toLowerCase()— mengembalikan rentetan di mana semua aksara dalam rentetan asal ditukar kepada huruf kecil;
  5. String toUpperCase()— mengembalikan rentetan di mana semua aksara dalam rentetan asal ditukar kepada huruf besar;
  6. boolean equals(s)— mengembalikan benar jika rentetan yang digunakan kaedah sepadan dengan rentetan yang ditentukan dalam hujah kaedah (anda tidak boleh membandingkan menggunakan ==pengendali rentetan, seperti mana-mana objek lain);
  7. int indexOf(ch)— mengembalikan indeks aksara ch dalam rentetan (indeks ialah nombor ordinal aksara, tetapi aksara dinomborkan bermula dari sifar). Jika watak itu tidak ditemui sama sekali, ia akan kembali -1. Jika aksara muncul lebih daripada sekali dalam rentetan, ia akan mengembalikan indeks kejadian pertamanya.
  8. int lastIndexOf(ch)- serupa dengan kaedah sebelumnya, tetapi mengembalikan indeks kejadian terakhir jika simbol muncul beberapa kali dalam baris.
  9. int indexOf(ch,n)— mengembalikan indeks aksara ch dalam rentetan, tetapi mula menyemak dari indeks n (indeks ialah nombor ordinal aksara, tetapi aksara dinomborkan bermula dari sifar).
  10. char charAt(n)— mengembalikan kod aksara yang terletak dalam baris di bawah indeks n (indeks ialah nombor siri aksara, tetapi aksara dinomborkan bermula dari sifar).
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
    }
}
Contoh program yang akan memaparkan indeks semua ruang dalam baris yang dimasukkan oleh pengguna dari papan kekunci:
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);
            }
        }
    }
}
Pautan ke sumber: aliran I/O dan rentetan dalam Java
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION