هنگام برنامه نویسی به جاوا یا هر زبان دیگر ، به احتمال زیاد باید از اطلاعات ورودی یک کاربر استفاده کنید. جاوا روشهای متفاوتی را برای به دست آوردن اطلاعات کاربر ارائه می دهد ، اما متداول ترین و شاید ساده ترین روش برای استفاده از شیء اسکنر است.
مراحل
روش 1 از 2: فیلم ها
مرحله 1. کلاس Scanner را وارد کنید
یا می توانید وارد کردن را انتخاب کنید
java.util. Scanner
کلاس یا کل
java.util
بسته برای وارد کردن کلاس یا بسته ، یکی از خطوط زیر را به ابتدای کد خود اضافه کنید:
واردات java.util. Scanner؛ // این فقط کلاس Scanner را وارد می کند. واردات java.util.*؛ // با این کار کل بسته java.util وارد می شود.
مرحله 2. با عبور از یک شیء جدید اسکنر ، آن را اولیه کنید
System.in
جریان ورودی به سازنده
System.in
جریان ورودی استاندارد است که از قبل باز است و آماده ارائه داده های ورودی است. به طور معمول این جریان مربوط به ورودی صفحه کلید است.
اسکنر userInputScanner = اسکنر جدید (System.in) ؛
مرحله 3. انواع مختلف داده های ورودی را که کاربر وارد می کند بخوانید
کلاس Scanner از بدست آوردن بدوی مانند int ، byte ، short ، long علاوه بر دریافت رشته پشتیبانی می کند.
-
در اینجا چند روش وجود دارد که از طریق کلاس Scanner در دسترس هستند:
-
یک بایت بخوانید -
nextByte ()
-
مختصر بخوانید -
nextShort ()
-
یک int بخوانید -
nextInt ()
-
طولانی بخوانید -
nextLong ()
-
شناور بخوانید -
nextFloat ()
-
دوبله بخوانید -
nextDouble ()
-
بولین بخوانید -
nextBoolean ()
-
یک خط کامل بخوانید -
nextLine ()
-
یک کلمه بخوانید -
بعد()
-
-
در اینجا نمونه ای از برنامه ای است که از روش های مختلف کلاس Scanner برای دریافت انواع مختلف ورودی استفاده می کند:
واردات java.util. Scanner؛ کلاس عمومی ScannerExample {public static void main (String args) {// راه اندازی اسکنر جدید userInputScanner = اسکنر جدید (System.in) ؛ // آزمایش nextLine ()؛ System.out.println ("\ n نام شما چیست؟")؛ نام رشته = userInputScanner.nextLine ()؛ // تست nextInt ()؛ System.out.print ("چند گربه دارید؟")؛ int numberOfCats = userInputScanner.nextInt ()؛ // تست nextDouble ()؛ System.out.print ("چه مقدار پول در کیف پول شما وجود دارد؟ $")؛ double moneyInWallet = userInputScanner.nextDouble ()؛ System.out.println ("\ n سلام" + نام + "! شما" + numberOfCats + (numberOfCats> 1؟ "cats": "cat") + "و $" + moneyInWallet + "در کیف پول خود دارید. / n")؛ }}
روش 2 از 2: مدیریت استثنائات
مرحله 1. استثنائات ورودی را کنترل کنید
یک
InputMismatchException
وقتی کاربر داده هایی را وارد می کند که با نوع درخواستی مطابقت ندارد وارد می شود. به عنوان مثال ، اگر کاربر هنگامی که از int درخواست می شود ، یک String وارد کند ، برنامه آن را پرتاب می کند
InputMismatchException
و خروج روش های مختلفی برای رسیدگی به این استثنا و حل این مشکل وجود دارد تا برنامه شما بی عیب و نقص باشد.
مرحله 2. از یک بلوک try-catch برای مدیریت استفاده کنید
InputMismatchException
.
import java.util. InputMismatchException؛ واردات java.util. Scanner؛ کلاس عمومی ScannerExample {public static void main (String args) {// راه اندازی اسکنر جدید userInputScanner = اسکنر جدید (System.in) ؛ // تست nextLine ()؛ System.out.print ("\ n نام شما چیست؟")؛ نام رشته = userInputScanner.nextLine ()؛ // تست nextInt ()؛ boolean validInput = false؛ int numberOfCats = 0 ؛ while (! validInput) {System.out.print ("چند گربه دارید؟")؛ سعی کنید {numberOfCats = userInputScanner.nextInt ()؛ validInput = true؛ } catch (InputMismatchException e) {validInput = false؛ userInputScanner.nextLine ()؛ }} // تست nextDouble ()؛ validInput = false؛ double moneyInWallet = 0.0؛ while (! validInput) {System.out.print ("چقدر پول در کیف پول شما وجود دارد؟ $")؛ سعی کنید {moneyInWallet = userInputScanner.nextDouble ()؛ userInputScanner.nextLine ()؛ validInput = true؛ } catch (InputMismatchException e) {validInput = false؛ userInputScanner.nextLine ()؛ }} System.out.println ("\ n سلام" + نام + "! شما" + numberOfCats + (numberOfCats> 1؟ "cats": "cat") "cat") + "و $" + moneyInWallet + "در کیف پول خود دارید. / n ") ؛ }}
توجه داشته باشید که ما باید وارد کنیم
java.util. InputMismatchException
به منظور استفاده از
InputMismatchException
اضافه كردن
userInputScanner.nextLine ()؛
مرحله 3. روش دیگر ، فقط با استفاده از خطوط بعدی از اسکنر ، ورودی کاربر را بی عیب و نقص کنید
به این ترتیب ، ما می توانیم اطمینان حاصل کنیم که همه چیزهایی که اسکنر برمی گرداند یک شی String است و هیچ استثنا ایجاد نمی کند. سپس ، برای تبدیل رشته ها به عدد صحیح یا دو برابر ، می توانیم از کلاس های Integer و Double wrapper استفاده کنیم.
واردات java.util. Scanner؛ کلاس عمومی ScannerExample {public static void main (String args) {// راه اندازی اسکنر جدید userInputScanner = اسکنر جدید (System.in) ؛ // تست nextLine ()؛ System.out.print ("\ n نام شما چیست؟")؛ نام رشته = userInputScanner.nextLine ()؛ // آزمایش nextInt ()؛ boolean validInput = false؛ int numberOfCats = 0 ؛ while (! validInput) {System.out.print ("چند گربه دارید؟")؛ رشته ورودی = userInputScanner.nextLine ()؛ سعی کنید {numberOfCats = Integer.parseInt (ورودی) ؛ validInput = true؛ } catch (NumberFormatException e) {validInput = false؛ }} // تست nextDouble ()؛ validInput = false؛ double moneyInWallet = 0.0؛ while (! validInput) {System.out.print ("چقدر پول در کیف پول شما وجود دارد؟ $")؛ رشته ورودی = userInputScanner.nextLine ()؛ سعی کنید {moneyInWallet = Double.parseDouble (ورودی) ؛ validInput = true؛ } catch (NumberFormatException e) {validInput = false؛ }} System.out.println ("\ n سلام" + نام + "! شما" + numberOfCats + (numberOfCats> 1؟ "cats": "cat") "cat") + "و $" + moneyInWallet + "در کیف پول خود دارید. / n ") ؛ }}
توجه داشته باشید که در اینجا نیازی به وارد کردن آن نداریم
NumberFormatException
همچنین نیازی به پاک کردن بافر با استفاده از آن نداریم
userInputScanner.nextLine ()؛
نکات
- برای اطلاعات بیشتر در مورد استفاده از کلاس Scanner ، به API اسکنر مراجعه کنید.
- همیشه از.next () به جای.nextLine () برای خواندن کلمه بعدی استفاده کنید ، زیرا.nextLine () می تواند اشکال داشته باشد.