JavaRush /Java Blogu /Random-AZ /Java-da I/O Streams və Strings
articles
Səviyyə

Java-da I/O Streams və Strings

Qrupda dərc edilmişdir
Məlumat daxil etmək üçün Java paket kitabxanasından bir sinif istifadə olunur Scanner. Java-da I/O Streams və Strings - 1Bu sinif istifadə olunacağı proqrama idxal edilməlidir. Bu, proqram kodunda ictimai sinif başlamazdan əvvəl edilir. Sinifdə standart giriş axınından verilmiş növün növbəti simvolunu oxumaq, eləcə də belə simvolun mövcudluğunu yoxlamaq üsulları var. Daxiletmə axını ilə işləmək üçün Skaner sinfinin obyektini yaratmalısınız , yaradılması zamanı onun hansı giriş axını ilə əlaqələndiriləcəyini göstərməlisiniz. Java-da standart giriş axını (klaviatura) obyekt ilə təmsil olunur - System.in. Və standart çıxış axını (ekran) artıq sizə tanış olan obyektdir System.out. Səhv çıxışı üçün standart bir axın da var - System.err, lakin onunla işləmək kursumuzun əhatə dairəsindən kənardadır.
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("Вы ввели не целое число");
        }
    }
}
hasNextDouble()Sinif obyektinə tətbiq olunan metod, Scannergiriş axınından həqiqi sayda növün oxuna biləcəyini yoxlayır doublevə metod nextDouble()onu oxuyur. Əvvəlcə onu yoxlamadan dəyəri oxumağa cəhd etsəniz, proqramın icrası zamanı xəta ala bilərsiniz (sazlayıcı əvvəlcədən belə bir xətanı aşkar etməyəcək). Məsələn, aşağıdakı proqrama real nömrə daxil etməyə çalışın:
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);
    }
}
nextLine()Həm də simvolların bütün ardıcıllığını oxumağa imkan verən bir üsul var , yəni. string, yəni bu üsulla əldə edilən dəyər sinif obyektində saxlanmalıdır String. Aşağıdakı misalda iki belə obyekt yaradılır, sonra onlara istifadəçi girişi bir-bir yazılır və sonra daxil edilmiş simvol ardıcıllıqlarını birləşdirməklə əldə edilən bir sətir ekranda göstərilir.
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);
    }
}
hasNext()Giriş axınında hər hansı simvolun qalıb-qalmamasını yoxlayan bir üsul da var . Sinfin Stringsətirlərə tətbiq oluna bilən çoxlu faydalı metodları var (metod adından əvvəl onun qaytardığı dəyərin növünü göstərəcəyik):
  1. int length()— sətrin uzunluğunu (ondakı simvolların sayını) qaytarır;
  2. boolean isEmpty()— sətirin boş olub olmadığını yoxlayır;
  3. String replace(a, b)— a simvolunun (hərfi və ya char tipli dəyişən) b simvolu ilə əvəz edildiyi sətri qaytarır;
  4. String toLowerCase()— orijinal sətirdəki bütün simvolların kiçik hərflərə çevrildiyi sətri qaytarır;
  5. String toUpperCase()— orijinal sətirdəki bütün simvolların böyük hərflərə çevrildiyi sətri qaytarır;
  6. boolean equals(s)— metodun tətbiq olunduğu sətir metod arqumentində göstərilən s sətrinə uyğun gələrsə, doğru qaytarır (siz ==hər hansı digər obyektlər kimi sətir operatorundan istifadə etməklə müqayisə edə bilməzsiniz);
  7. int indexOf(ch)— sətirdə ch simvolunun indeksini qaytarır (indeks simvolun sıra nömrəsidir, lakin simvollar sıfırdan başlayaraq nömrələnir). Əgər xarakter ümumiyyətlə tapılmazsa, o, -1 qaytaracaq. Əgər simvol bir sətirdə birdən çox görünürsə, o, ilk baş vermə indeksini qaytaracaq.
  8. int lastIndexOf(ch)- əvvəlki üsula bənzəyir, lakin simvol sətirdə bir neçə dəfə görünürsə, sonuncu hadisənin indeksini qaytarır.
  9. int indexOf(ch,n)— sətirdəki ch simvolunun indeksini qaytarır, lakin n indeksindən yoxlamaya başlayır (indeks simvolun sıra nömrəsidir, lakin simvollar sıfırdan başlayaraq nömrələnir).
  10. char charAt(n)— n indeksinin altındakı sətirdə yerləşən simvolun kodunu qaytarır (indeks simvolun seriya nömrəsidir, lakin simvollar sıfırdan başlayaraq nömrələnir).
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
    }
}
İstifadəçinin klaviaturadan daxil etdiyi sətirdə bütün boşluqların indekslərini göstərəcək proqram nümunəsi:
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);
            }
        }
    }
}
Mənbəyə keçid: Java-da I/O axınları və sətirlər
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION