JavaRush /جاوا بلاگ /Random-SD /I/O اسٽريمز ۽ اسٽرنگس جاوا ۾
articles
سطح

I/O اسٽريمز ۽ اسٽرنگس جاوا ۾

گروپ ۾ شايع ٿيل
جاوا پيڪيج لائبريري مان هڪ ڪلاس ڊيٽا داخل ڪرڻ لاءِ استعمال ڪيو ويندو آهي Scanner. I/O اسٽريمز ۽ اسٽرنگس جاوا ۾ - 1ھن ڪلاس کي پروگرام ۾ درآمد ڪيو وڃي جتي اھو استعمال ڪيو ويندو. اهو پروگرام ڪوڊ ۾ پبلڪ ڪلاس شروع ٿيڻ کان اڳ ڪيو ويندو آهي. ڪلاس ۾ معياري ان پٽ اسٽريم مان ڏنل قسم جي ايندڙ ڪردار کي پڙهڻ لاءِ طريقا آهن، انهي سان گڏ اهڙي ڪردار جي وجود کي جانچڻ لاءِ. هڪ ان پٽ اسٽريم سان ڪم ڪرڻ لاءِ، توهان کي اسڪينر ڪلاس جو هڪ اعتراض ٺاهڻو پوندو ، اهو بيان ڪرڻ دوران ته ان پٽ اسٽريم سان ڪهڙو تعلق هوندو. معياري ان پٽ اسٽريم (ڪيبورڊ) جاوا ۾ هڪ اعتراض جي نمائندگي ڪئي وئي آهي - System.in. ۽ معياري ٻاڦ وارو وهڪرو (ڊسپلي) ھڪڙو اعتراض آھي جيڪو توھان کي اڳ ۾ ئي واقف آھي System.out. غلطي جي پيداوار لاءِ هڪ معياري وهڪرو پڻ آهي - System.errپر ان سان ڪم ڪرڻ اسان جي ڪورس جي دائري کان ٻاهر آهي.
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()ڪلاس جي ڪنهن اعتراض تي لاڳو ڪيل طريقو Scannerچيڪ ڪري ٿو ته ڇا ان پٽ اسٽريم مان قسم جو حقيقي نمبر پڙهي سگهجي ٿو double، ۽ طريقو nextDouble()ان کي پڙهي ٿو. جيڪڏھن توھان ڪوشش ڪريو ھڪڙي قيمت کي پڙھڻ جي پھرين ان کي جانچڻ کان سواء، توھان کي پروگرام جي عمل جي دوران ھڪڙي غلطي ملي سگھي ٿي (ڊيبگر اڳ ۾ اھڙي غلطي کي نه ڳولي سگھندو). مثال طور، ھيٺ ڏنل پروگرام ۾ حقيقي نمبر داخل ڪرڻ جي ڪوشش ڪريو:
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()جيڪو توھان کي پڙھڻ جي اجازت ڏئي ٿو اکرن جو پورو سلسلو، يعني. string، جنهن جو مطلب آهي ته هن طريقي جي ذريعي حاصل ڪيل قدر هڪ طبقي اعتراض ۾ ذخيرو ٿيڻ گهرجي String. هيٺين مثال ۾، ٻه اهڙيون شيون ٺاهيا ويا آهن، پوء صارف ان پٽ انهن ڏانهن هڪ هڪ ڪري لکيو ويندو آهي، ۽ پوء هڪ اسٽرنگ اسڪرين تي ڏيکاري ٿو، جيڪو اکرن جي داخل ڪيل ترتيبن کي گڏ ڪندي حاصل ڪيو ويو آهي.
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()جيڪو چيڪ ڪري ٿو ته ڇا ان پٽ اسٽريم ۾ ڪي اکر بچيا آھن. ڪلاس String۾ ڪيترائي مفيد طريقا آھن جيڪي تارن تي لاڳو ڪري سگھجن ٿا (طريقي جي نالي کان اڳ اسين ان قدر جو قسم ڏيکارينداسين جيڪو اھو موٽائي ٿو):
  1. int length()- تار جي ڊگھائي موٽائي ٿو (ان ۾ اکرن جو تعداد)؛
  2. boolean isEmpty()- چيڪ ڪري ٿو ته تار خالي آهي؛
  3. String replace(a, b)- هڪ اسٽرنگ ڏي ٿو جتي ڪردار الف (لفظي يا متغير قسم جي چار) کي ڪردار ب سان تبديل ڪيو ويو آهي؛
  4. String toLowerCase()- ھڪڙي اسٽرنگ کي موٽائي ٿو جتي اصل اسٽرنگ جا سڀ اکر لوئر ڪيز ۾ تبديل ڪيا ويا آھن؛
  5. String toUpperCase()- هڪ اسٽرنگ موٽائي ٿو جتي اصل اسٽرنگ جا سڀئي اکر اپر ڪيز ۾ تبديل ڪيا ويا آهن؛
  6. boolean equals(s)- واپسي صحيح آھي جيڪڏھن اسٽرنگ جنھن تي طريقو لاڳو ڪيو ويو آھي ميٿڊ آرگيومينٽ ۾ بيان ڪيل اسٽرنگ سان ملندو آھي (توهان ==اسٽرنگ آپريٽر کي استعمال ڪرڻ جو مقابلو نٿا ڪري سگھو، جھڙوڪ ٻيون شيون)؛
  7. int indexOf(ch)- هڪ اسٽرنگ ۾ ڪردار ch جي انڊيڪس واپس ڪري ٿو (انڊيڪس ڪردار جو آرڊينل نمبر آهي، پر اکر صفر کان شروع ٿينديون آهن). جيڪڏهن ڪردار سڀ ڪجهه نه مليو، اهو واپس ايندو -1. جيڪڏهن ڪو ڪردار اسٽرنگ ۾ هڪ کان وڌيڪ ڀيرا ظاهر ٿئي ٿو، اهو ان جي پهرين واقعن جي انڊيڪس واپس ڪندو.
  8. int lastIndexOf(ch)- پوئين طريقي سان ملندڙ جلندڙ، پر آخري واقعن جي انڊيڪس کي واپس ڏئي ٿو جيڪڏهن علامت قطار ۾ ڪيترائي ڀيرا ظاهر ٿئي ٿي.
  9. int indexOf(ch,n)- اسٽرنگ ۾ ڪردار ch جي انڊيڪس واپس ڪري ٿو، پر انڊيڪس n کان چيڪ ڪرڻ شروع ڪري ٿو (انڊيڪس ڪردار جو آرڊينل نمبر آھي، پر اکر صفر کان شروع ٿينديون آھن).
  10. char charAt(n)- انڊيڪس n جي هيٺان لائن ۾ واقع ڪردار جو ڪوڊ واپس ڪري ٿو (انڊيڪس ڪردار جو سيريل نمبر آهي، پر ڪردارن کي صفر کان شروع ڪيو ويو آهي).
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
    }
}
هڪ پروگرام جو هڪ مثال جيڪو ڪيبورڊ مان صارف پاران داخل ڪيل لائن ۾ سڀني اسپيس جي انڊيڪس ڏيکاريندو:
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);
            }
        }
    }
}
ذريعن سان لنڪ: I/O اسٽريمز ۽ اسٽرنگ جاوا ۾
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION