English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية Java الأساسية

Java التحكم في العملية

Java arrays

Java توجيهية (I)

Java توجيهية (II)

Java توجيهية (III)

معالجة الاستثناءات Java

Java قائمة List

Java مجموعة Queue (الطابور)

Java مجموعة Map

Java مجموعة Set

Java إدخال/إخراج (I/O)

Java Reader/Writer

مواضيع أخرى في Java

فئة Scanner Java

في هذا الدرس، سنتعلم عن Scanner في Java باستخدام أمثلة.

يمكن استخدام فئة PrintWriter في مكتبة java.io لتحرير بيانات الإدخال بشكل قابل للقراءة عادة (نصي).

يُستخدم فئة Scanner في مكتبة java.util لقراءة بيانات الإدخال من مصادر مختلفة (مثل تدفقات الإدخال، المستخدمين، الملفات إلخ). دعونا نأخذ مثالاً.

مثال 1: قراءة سطر نصي باستخدام Scanner

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        // إنشاء عميل Scanner
        Scanner input = new Scanner(System.in);
        System.out.print("إدخل الاسم: ");
        // استقبال إدخال من لوحة المفاتيح
        String name = input.nextLine();
        // طباعة الاسم
        System.out.println("اسمي هو " + name);
        // يغلق المسح
        input.close();
    }
}

نتائج الإخراج

إدخل الاسم: Jack
اسمي هو Jack

انتبه إلى الخطوات التالية في المثال السابق

Scanner input = new Scanner(System.in);

في هذا المكان، قمنا بإنشاء عميل Scanner يُدعى input.

يستخدم معامل System.in للحصول على الإدخال من الإدخال القياسي. كما يتم الحصول على إدخال من لوحة المفاتيح.

ثم نستخدم طريقة nextLine() من فئة Scanner لقراءة سطر نصي من المستخدم.

الآن لديك بعض الفهم عن Scanner، دعنا نكتشفه أكثر.

استيراد فئة Scanner

من خلال المثال السابق، يمكننا رؤية أننا نحتاج أولاً إلى استيراد مكتبة java.util.Scanner ثم استخدام فئة Scanner.

import java.util.Scanner;

إنشاء عميل مسح باستخدام Java

كما ذكرت سابقًا، بعد استيراد المكتبة، يمكنك إنشاء عميل Scanner.

// من خلال تدفق الإدخال قراءة الإدخال
Scanner sc1 = new Scanner(InputStream input);
// من خلال الملف قراءة الإدخال
Scanner sc2 = new Scanner(File file);
// من خلال السلسلة قراءة الإدخال
Scanner sc3 = new Scanner(String str);

في هذا المكان، أنشأنا جسم Scanner، التي ستقرأ إدخالات منInputStream،قراءة إدخال من ملفات و نصوص.

طرق إدخال محلل Java

يقدم جسم Scanner عدة طرق، مما يتيح لنا قراءة أنواع مختلفة من المدخلات.

طريقةوصف
nextInt()قراءة قيمة int من المستخدم
nextFloat()قراءة قيمة float من المستخدم
nextBoolean()قراءة قيمة boolean من المستخدم
nextLine()قراءة سطر من المستخدم
next()قراءة كلمة من المستخدم
nextByte()قراءة قيمة byte من المستخدم
nextDouble()قراءة قيمة double من المستخدم
nextShort()قراءة قيمة short من المستخدم
nextLong()قراءة قيمة long من المستخدم

مثال 2: طريقة nextInt() لمحلل Java

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        //إنشاء جسم محلل
        Scanner input = new Scanner(System.in);
        System.out.println("إدخال عدد صحيح: ");
        //قراءة قيمة int
        int data1 = input.nextInt();
        System.out.println("استخدام nextInt(): " + data1);
        input.close();
    }
}

نتائج الإخراج

إدخال عدد صحيح:
22
استخدام nextInt(): 22

في المثال السابق، استخدمنا طريقة nextInt() لقراءة القيمة الصحيحة.

مثال 3: طريقة nextDouble() لمحلل Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //إنشاء جهاز مسح جديد
      Scanner input = new Scanner(System.in);
      System.out.print("إدخال القيمة العائمة الثنائية: ");
      //قراءة القيمة العائمة الثنائية
      double value = input.nextDouble();
      System.out.println("استخدام nextDouble(): " + value);
      input.close();
   }
}

نتائج الإخراج

إدخال القيمة العائمة الثنائية: 33.33
استخدام nextDouble(): 33.33

في المثال السابق، استخدمنا طريقة nextDouble() لقراءة القيمة العائمة.

مثال 4: طريقة next() لمحلل Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //إنشاء جهاز مسح جديد
      Scanner input = new Scanner(System.in);
      System.out.print("أدخل اسمك: ");
      //قراءة الكلمة بأكملها
      String value = input.next();
      System.out.println("استخدام next(): " + value);
      input.close();
   }
}

نتائج الإخراج

أدخل اسمك: Jonny Walker
استخدام next(): Jonny

في المثال السابق، استخدمنا طريقة next() لقراءة النص من المستخدم.

في هذا المكان، نقدم الاسم الكامل. ولكن، طريقة next() تقرأ الاسم فقط.

هذا لأن طريقة next() تقرأ المدخلالفراغحرف. عند مواجهة الفراغ، يعود بتعريف النص (باستثناء الفراغات).

مثال 5: طريقة nextLine() في مسح Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //إنشاء جهاز مسح جديد
      Scanner input = new Scanner(System.in);
      System.out.print("أدخل اسمك: ");
      //قراءة سطر كامل
      String value = input.nextLine();
      System.out.println("استخدام nextLine(): " + value);
      input.close();
   }
}

نتائج الإخراج

أدخل اسمك: Jonny Walker
استخدام nextLine(): Jonny Walker

في المثال الأول، استخدمنا طريقة nextLine() لقراءة سطر من المستخدم.

مختلف عن next()، يقرأ nextLine() كامل سطر الإدخال بما في ذلك الفراغات. ينتهي هذا الطريقة عند مواجهة سطر جديد \n.

مسح Java BigInteger و BigDecimal

يمكن استخدام برنامج مسح Java أيضًا لقراءة الأعداد الكبيرة والأعداد العكسية العشرية.

  • nextBigInteger() - قراءة قيمة عدد كبير من المستخدم

  • nextBigDecimal() - قراءة قيمة عكسي عشري من المستخدم

مثال 4: قراءة BigInteger و BigDecimal

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //إنشاء جهاز مسح جديد
      Scanner input = new Scanner(System.in);
      System.out.print("أدخل عدد كبير عكسي: ");
      //قراءة العدد العكسي الكبير
      BigInteger value1 = input.nextBigInteger();
      System.out.println("استخدام nextBigInteger(): " + value1);
      System.out.print("أدخل عدد عكسي عشري: ");
      //قراءة العدد العكسي العشري
      BigDecimal value2 = input.nextBigDecimal();
      System.out.println("استخدام nextBigDecimal(): " + value2);
      input.close();
   }
}

نتائج الإخراج

إدخال عدد كبير: 987654321
استخدام nextBigInteger(): 987654321
إدخال دسمة عشرية: 9.55555
استخدام nextBigDecimal(): 9.55555

في المثال السابق، استخدمنا حزمة java.math.BigInteger وحزمة java.math.BigDecimal لقراءة BigInteger وBigDecimal.

كيف يعمل فحص Java

يقرأ جهاز الفحص الكامل للسطر ويقسم هذا السطر إلى علامات. العلامات هي عناصر صغيرة ذات معنى للمبرمج. على سبيل المثال

افترض أن لدينا سطر إدخال:

He is 22

في هذه الحالة، سيقرأ جهاز الفحص الكامل للسطر ويقسم هذا السطر إلى رموز: “ He ”,“ is ” و “ 22 .” ثم، يقوم الجهاز المكتشف بمرور كل رمز، ويقوم بقراءة كل رمز باستخدام طريقة مختلفة.

الإشارةالفراغ المستخدم بشكل افتراضي لفصل العلامات.