إدخال سلاسل متعددة في Java باستخدام الماسح [مع مثال الترميز]

نشرت: 2021-02-05

جدول المحتويات

مقدمة

في حزمة java.util ، يعد الماسح الضوئي أحد الفئات التي تساعد في تجميع مدخلات متعددة من الأنواع الأولية مثل مزدوج ، وعدد صحيح ، وسلاسل ، وما إلى ذلك ، على الرغم من أنها ليست طريقة فعالة لقراءة المدخلات في برنامج Java حيث يعمل الوقت باعتبارها قيدًا ، فهي بلا شك واحدة من أسهل الطرق لجمع مدخلات متعددة من المستخدم. في هذه المدونة ، ستتعلم كيفية تجميع مدخلات سلسلة متعددة من المستخدم في برنامج Java باستخدام فئة الماسح الضوئي.

طرق أخذ مدخلات متعددة باستخدام الماسح

يجب عليك استيراد حزمة java.util في برنامج قبل استخدام فئة الماسح الضوئي. يسرد الجدول التالي الطرق المستخدمة لأخذ مدخلات متعددة من أنواع مختلفة من المستخدم في برنامج Java.

طريقة المدخلات
nextInt () عدد صحيح
nextFloat () يطفو
التاليمزدوج () مزدوج
nextLong () طويل
nextShort () قصيرة
التالي() كلمة واحدة
السطر التالي() خط الأوتار
nextBoolean () قيمة منطقية

استخدام طريقة Java nextLine ()

تقوم طريقة java.util.Scanner.nextLine () بإرجاع السطر الذي تم تخطيه عن طريق دفع الماسح الضوئي إلى ما بعد السطر الحالي. إذا تم إعطاء فاصل أسطر في نهاية السطر الحالي ، فإن هذه الطريقة تستبعده وتعيد بقية السلسلة من السطر الحالي. يتم تعيين الماسح في بداية السطر التالي ويقرأ السلسلة بأكملها ، بما في ذلك المسافات البيضاء للكلمات.

صيغة طريقة nextLine () هي كما يلي:

السلسلة العامة nextLine ()

تطرح هذه الطريقة الاستثناءين التاليين:

  • NoSuchElementException - إذا كانت السلسلة فارغة أو لم يتم العثور على سطر.
  • IllegalStateException - إذا كان الماسح مغلقًا.

مثال

يوضح المثال التالي كيف تقوم طريقة java.util.Scanner.nextLine () بجمع مدخلات متعددة من المستخدم.

استيراد java.util.Scanner ؛

فئة عامة SacnnerDemoMultipleString

{

الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

عرض ماسح ضوئي = ماسح ضوئي جديد (System.in) ؛

System.out.print ("الرجاء إدخال المدخلات المتعددة التي تريد طباعتها:") ؛

// يأخذ إدخال عدد صحيح

String [] string = new String [demo.nextInt ()] ؛

// استهلاك <إدخال> من الإدخال أعلاه

demo.nextLine () ،

لـ (int i = 0 ؛ i <string.length ؛ i ++)

{

سلسلة [i] = demo.nextLine () ،

}

System.out.println ("\ n لقد أدخلت الإدخال التالي:")؛

// لكل حلقة لطباعة السلسلة

لـ (String str: string)

{

System.out.println (str) ؛

// أغلق الماسح

scanner.close () ؛

}

}

}

سيقوم البرنامج أعلاه بطباعة الإخراج التالي

الرجاء إدخال عدة إدخالات تريد طباعتها: 7

ميشا

هاري

روبرت

هارفي

جيل

راشيل

جينيفر

لقد قمت بإدخال المدخلات التالية:

ميشا

هاري

روبرت

هارفي

جيل

راشيل

جينيفر

باستخدام طريقة Java nextInt ()

تقوم طريقة java.util.Scanner.nextInt () بفحص المدخلات المقدمة من قبل المستخدم كعدد صحيح. إذا تم العثور على عدد صحيح ، فإن الماسح يتقدم بعد الإدخال المتطابق.

تكون صيغة طريقة nextInt () كما يلي:

عمومية int nextInt ()

تطرح هذه الطريقة الاستثناءات الثلاثة التالية:

  • InputMismatchException - إذا كان الرمز المميز التالي لا يتطابق مع التعبير العادي للعدد الصحيح أو إذا كان الرمز المميز التالي خارج النطاق.
  • NoSuchElementException - إذا تم استنفاد المدخلات.
  • IllegalStateException - إذا كان الماسح مغلقًا.

مثال

يوضح المثال التالي كيف تقوم طريقة java.util.Scanner.nextInt () بجمع مدخلات متعددة من المستخدم.

// برنامج Java لمسح عدد صحيح باستخدام الماسح الضوئي

// فئة وطباعة متوسطها.

استيراد java.util.Scanner ؛

فئة عامة ScannerDemoInteger

{

الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

عرض ماسح ضوئي = ماسح ضوئي جديد (System.in) ؛

// تهيئة مجموع وعدد عناصر الإدخال

مجموع int = 0 ، عدد = 0 ؛

// تحقق من وجود قيمة عدد صحيح

بينما (demo.hasNextInt ())

{

// مسح قيمة عدد صحيح

عدد int = demo.nextInt () ؛

مجموع + = الأسطوانات ؛

العد ++ ؛

}

يعني int = sum / count ؛

System.out.println (“يعني:” + متوسط) ؛

}

}

يتم تغذية البرنامج أعلاه بالمدخلات التالية:

101

223

238

892

99

500

728

سيقوم البرنامج أعلاه بطباعة الإخراج التالي:

يعني: 397

اقرأ أيضًا: مشروع Java MVC

استخدام طريقة Java nextDouble ()

تفحص طريقة java.util.Scanner.nextDouble () المدخلات التي قدمها المستخدم كمدخلة مزدوجة. إذا تم العثور على تعبير عادي عائم ، فإن الماسح يتقدم بعد الإدخال المطابق.

تكون صيغة طريقة nextInt () كما يلي:

مزدوج العام التالي مزدوج ()

تطرح هذه الطريقة الاستثناءات الثلاثة التالية:

  • InputMismatchException - إذا كان الرمز المميز التالي لا يتطابق مع التعبير العادي العائم أو إذا كان الرمز المميز التالي خارج النطاق.
  • NoSuchElementException - إذا تم استنفاد المدخلات.
  • IllegalStateException - إذا كان الماسح مغلقًا.

مثال

يوضح المثال كيف تقوم طريقة java.util.Scanner.nextDouble () بجمع مدخلات متعددة من المستخدم.

// برنامج Java لمسح تعويم باستخدام الماسح الضوئي

استيراد java.util.Scanner ؛

ماسحة فئة عامة DoubleRegularExpression {

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

String new = "صباح الخير! 3 + 3.0 = 6 صحيح "؛

// كتابة كائن ماسح ضوئي جديد باستخدام كائن السلسلة المحدد

عرض ماسح ضوئي = ماسح ضوئي جديد ؛

// استخدم لغة الولايات المتحدة لتكون قادرًا على تحديد الزوجي في السلسلة

demo.useLocale (Locale.US) ؛

// ابحث في الرمز المزدوج التالي وقم بطباعته

بينما (demo.hasNext ()) {

// إذا كان التالي عبارة عن مضاعفة ، تم العثور على الطباعة والتعبير العادي العائم

إذا (demo.hasNextDouble ()) {

System.out.println (“Found:” + demo.nextDouble ())؛

}

// إذا لم يتم العثور على تعبير عادي مزدوج ، فقم بطباعة "غير موجود" والرمز المميز

System.out.println (“غير موجود:” + demo.next ())؛

}

// أغلق الماسح

scanner.close () ؛

}

}

سينتج عن البرنامج أعلاه المخرجات التالية:

غير موجود: جيد

غير موجود: صباح!

تم العثور عليها: 3.0

غير موجود: +

تم العثور عليها: 3.0

غير موجود: =

تم العثور عليها: 6.0

غير موجود: صحيح

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

على سبيل المثال ، الرموز الواردة في هذه المدونة هي الغرض ويمكن تعديلها حسب احتياجات الفرد. إذا كنت مهتمًا بمعرفة المزيد عن Java وتطوير البرامج الكاملة ، فراجع برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، 9+ المشاريع ، والتعيينات ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

ما هي فئة الماسح الضوئي في جافا؟

تتيح لك فئة الماسح قراءة القيم من لوحة المفاتيح دون استخدام إدخال وحدة تحكم Java. إدخال وحدة تحكم Java بطيء ، وكذلك إعادة توجيهه. يعد الماسح الضوئي أسرع وأكثر ملاءمة ، لذا يجب استخدام الماسح الضوئي بدلاً من إدخال وحدة تحكم Java. يستخدم الماسح الضوئي دفق الإدخال المعتاد لـ Java ، بحيث يمكن ربطه بمحللات أخرى. الماسح الضوئي أسهل في الاستخدام من إدخال وحدة تحكم Java. يحتوي الماسح الضوئي على ثلاث فئات فرعية رئيسية ، وهي BufferedReader و InputStreamReader و FileReader. الأكثر عمومية هو BufferedReader. يمكن لـ BufferedReader قراءة أي شيء يمكن قراءته بواسطة InputStreamReader ، وله ميزة واحدة كبيرة: المخزن المؤقت. يمكن أن يحتفظ المخزن المؤقت بسطر واحد في كل مرة. لا يحتوي دفق الإدخال على مخزن مؤقت على الإطلاق: عند استدعاء التالي () ، فإنه يُرجع القيمة. هذا يعني أنه يجب عليك جمع القيم قبل أن تتمكن من فعل أي شيء بها. الماسح الضوئي يفعل ذلك من أجلك.

ما هو منشئ السلاسل في جافا؟

منشئ السلسلة هو نوع جديد من الفئات لإنشاء سلسلة. يتم تقديم فئة منشئ السلسلة في Java من الإصدار 1.3. يتيح لك إنشاء سلسلة من خلال ربط عدد من السلاسل وتغيير حجمها تلقائيًا عند إضافة المزيد من السلاسل إليها. مقارنةً بتسلسل السلسلة ، يعد استخدام منشئ السلاسل أسرع وأكثر مرونة ، على الرغم من أنه أقل قابلية للقراءة. كائنات StringBuilder هي كائنات يتم استخدامها لإنشاء قيم سلسلة. تحتوي كائنات StringBuilder على عدد من الطرق.

ما هو InputStreamReader في جافا؟

يقرأ InputStreamReader دفقًا من الأحرف من دفق الإدخال ويفك تشفيرها في ترميز حرف محدد. يوفر طريقة سهلة لتحويل تدفقات الأحرف من ترميز إلى آخر. يقرأ InputStreamReader وحدات البايت من التدفق الأساسي ويحولها إلى أحرف باستخدام ترميز مجموعة الأحرف المحدد. إنها فئة تُستخدم لتحويل بيانات دفق البايت إلى بيانات دفق الأحرف. يمثل دفق البايت البيانات الثنائية ويمثل دفق الأحرف النص.