Scanner در جاوا چیست؟ – توضیح ساده کلاس اسکنر + مثال


در زبان برنامه نویسی جاوا کلاس Scanner به عنوان ابزاری برای دریافت اطلاعات از ورودی مورد استفاده قرار میگیرد. به طور کلی هر برنامه و نرمافزاری نیازمند ارتباط دو سویه با کاربر است و برای همین منظور نیز طراحان زبان جاوا کلاس Scanner را در اختیار توسعهدهندگان قرار دادهاند. کلاس Scanner در جاوا با فراهم آوردن متدهای مختلف جهت کنترل ورودی و پردازش آنها امکانات بسیار خوبی را در امر توسعه فراهم میکند. بر همین اساس در این مطلب از مجله فرادرس به این سوال پاسخ داده خواهد شد که کلاس Scanner در جاوا چیست و چه کاربردهایی دارد. علاوه بر این، با مطالعه این مطلب مراحل پیادهسازی این کلاس از ایجاد شی گرفته تا به کار بردن متدهای مختلف آن را فرا خواهید گرفت. در انتها نیز ضمن بیان مزایا و معایب استفاده از این کلاس در جاوا، چند مثال از کاربردهای عملی Scanner نیز آورده شده است.
کلاس Scanner در جاوا چیست؟
Scanner یکی از کلاسهای موجود در بسته نرمافزاری جاوا است. هدف اصلی کلاس Scanner در جاوا فراهم آوردن امکانی برای برقراری ارتباط دو سویه بین کاربر و نرمافزار است. به بیانی دیگر این کلاس امکانی را برای وارد کردن اطلاعات کاربر به برنامه ایجاد میکند تا نرمافزار به کمک این اطلاعات عملکرد مناسب را ارائه دهد.
کلاس Scanner از اهمیت بسیار بالایی برخوردار است، زیرا امروزه تمام برنامهها نیازمند راهی برای تعامل با کاربر و دریافت دادههای مورد نیاز هستند. طراحان زبان برنامه نویسی جاوا با در نظر گرفتن اهمیت این مسئله کلاس Scanner در جاوا را برای آسان نمودن برقراری ارتباط بین نرمافزار و کاربر پیادهسازی کردند. این مسئله به ويژه در نرمافزارهایی با میزان تعامل زیاد با کاربر از اهمیت بیشتری نیز برخوردار است، زیرا تعاملات بین کاربر و نرمافزار باید به آسانترین شکل ممکن صورت گیرد.
کاربرد Scanner در جاوا چیست؟
کاربرد کلاس Scanner در جاوا فراهم آوردن امکانی برای ایجاد تعامل بین کاربر و نرمافزار است. به عنوان مثال، توسعهدهندگان وب در هنگام ساخت وبسایتهای مختلف به کمک جاوا میتوانند از این کلاس برای پیادهسازی امکان ثبتنام و ورود کاربر به برنامه استفاده کنند. همچنین، به کمک متدهای موجود در کلاس Scanner میتوان از ورود کاراکترهای غیرمجاز در کادرهای ورود داده جلوگیری کرد. همچنین، میتوان از Scanner برای کنترل فرمت دادهها قبل از درج آنها در «پایگاهداده» (Database) نرمافزار یا وبسایت اطمینان حاصل کرد.

مراحل پیادهسازی Scanner در جاوا
کلاس Scanner در جاوا زیر مجموعه پکیجjava.util است و از نسخه1.5 جاوا در دسترس قرار گرفت. این کلاس برای دریافت ورودی از کاربر و تجزیه آن به نوعهای دادهای مختلف همچون «عدد صحیح» (Inteager)، «عدد اعشاری» (Double)، «رشته» (String) و سایر موارد مورد استفاده قرار میگیرد.
Scanner در جاوا کلاسی کاربردی برای تجزیه دادهها با استفاده از «عبارات منظم» (Regular Expression) است. در ادامه با مراحل پیادهسازی Scanner در جاوا آشنا خواهید شد.
گام اول: وارد کردن پکیج Scanner در برنامه
همانند هر کلاس یا کتابخانه دیگری در جاوا برای استفاده از Scanner باید پکیج مربوط به آن را در ابتدای برنامه قرار داد. همانطور که در ابتدای این بخش نیز عنوان شد، کلاس Scanner زیر مجموعه پکیج بسیار معروفjava.util در جاوا است. در نتیجه، در گام نخست باید کد زیر را برای افزودن پکیج Scanner در برنامه قرار داد.
افزودن پکیج Scanner در برنامه به آسانی و تنها با نوشتن کد بالا صورت میگیرد.
گام دوم: آشنایی با توابع سازنده کلاس Scanner در جاوا
توابع «سازنده» (Constructor) یکی از مفاهیم اصلی در جاوا و «برنامه نویسی شیگرا» (Object Oriented Programming | OOP) هستند. این توابع در واقع راهنما و مدلی برای ساخت یک نمونه یا شی از کلاس را فراهم میکنند. با استفاده از این توابع امکان تعیین ویژگیها و متدهای مورد نیاز برای شی مورد نظر وجود دارد. کلاس Scanner در جاوا نیز برای همین منظور توابع سازنده مختلفی با قابلیتهای متنوع ارائه داده است. در تصویر زیر فهرستی از توابع سازنده موجود در کلاس Scanner ارائه شده است.
نوعهای دادهای زیر به عنوان آرگومانهای ورودی در بیشتر توابع سازنده مشترک هستند.
- InputStream : این نوع دادهها اطلاعات ورودی را به صورت دنباله مرتب شدهای از بایتها در اختیار شی مورد نظر از کلاس Scanner قرار میدهند.
- File or Path : با تعیین این نوع دادهای، ورودی از طریق دادههای موجود در فایل دریافت میشود.
- String : با تعیین این نوع دادهای، اطلاعات ورودی به صورت رشته در اختیار کلاس Scanner قرار میگیرد.
همچنین، با بررسی آرگومان دوم موجود در برخی از توابع سازنده امکان تعیین مجموعهای از کاراکترها برای تجزیه به جای کاراکترهای پیشفرض وجود دارد. این آرگومان تحت عنوانCharset در برخی از توابع سازنده مشخص شده است.
گام سوم: ساخت شی از کلاس Scanner در جاوا
بعد از واردن کردن پکیج Scanner در برنامه و آشنایی با توابع سازنده آن باید یک شی از این کلاس ایجاد کرد. با توجه به نوع ورودی دریافتی برنامه باید تابع سازنده مناسب برای ساخت شی را انتخاب کرد. در ادامه، نحوه ساخت شی از کلاس Scanner با توجه به ورودی برنامه ارائه شده است.
- ورودی از نوع InputStream
- ورودی از نوع File
- ورودی از نوع رشته
گام چهارم: آشنایی با متدهای کلاس Scanner در جاوا
کلاس Scanner در جاوا متدهای مختلفی را نیز برای بهبود فرایند دریافت اطلاعات از کاربر ارائه میدهد. به کمک متدهای متنوع موجود در کلاس Scanner میتوان قوانین و دستورالعملهای سخت گیرانهای برای دادههای ورودی از سمت کاربر نظیر نوع داده و مقدار داده اعمال کرد.

علاوه بر این، با ترکیب متدهای موجود در کلاس Scanner با سایر عملکردها و ساختارهای برنامه نویسی میتوان آن را به ابزار بسیار قدرتمندی تبدیل کرد. به عنوان مثال، میتوان اطمینان حاصل کرد که تنها کاراکترهای مجاز و تایید شده در پایگاه داده نرمافزار درج شوند و از درج کاراکترهای غیرمجاز جلوگیری کرد. همچنین، در فرایند ساخت بازیهای ویدیویی نیز برای دریافت اطلاعات مربوط به شخصیت اصلی بازی نظیر نام میتوان از متدهای موجود در این کلاس استفاده کرد.
فهرست متدهای کلاس Scanner در جاوا
در ادامه فهرستی از متدهای موجود در کلاس Scanner به همراه کاربرد هر کدام ارائه شده است.
- nextInt() : یک مقدار از نوع عدد صحیح را از ورودی میخواند.
- nextFloat() : یک مقدار از نوع عدد اعشاری را تا نهایتاً ۳۲ رقم اعشار از ورودی دریافت میکند.
- nextBoolean() : یک مقدار «بولی» (Boolean) را از ورودی دریافت میکند.
- nextLine() : یک خط از اطلاعات را تا لحظه فشردن دکمه Enter از ورودی دریافت میکند.
- next() : این متد یک کلمه واحد را از ورودی میخواند. در این شرایط تا رسیدن به «فاصله خالی» (Whitespace) ورودی به خواندن ادامه میدهد و به بیان سادهتر نیز تا لحظه فشردن دکمه Space فرایند دریافت ورودی ادامه دارد.
- nextByte() : یک بایت از اطلاعات را از ورودی میخواند.
- nextDouble() : یک مقدار از نوع داده Double را از ورودی میخواند.
- nextShort() : یک مقدار از نوع داده Short را از ورودی دریافت میکند. محدوده این نوع دادهای بین مقدار ۳۲۷۶۸- تا ۳۲۷۶۷ است.
- nextLong() : این متد یک مقدار از نوع دادهای Long را دریافت میکند.
- useDelimiter() : این متد الگو جدا کننده Scanner در جاوا را تعیین میکند و مقدار آن به طور پیشفرض نیز کاراکتر خالی یا Whitespace است.
- close() : از این متد بعد از اتمام کار با Scanner استفاده میشود تا منابع سیستم آزاد شود.
- hasNext() : این متد در صورت قرار داشتن توکن دیگری در ورودی مقدار true را بر میگرداند و به صورت پیوسته منتظر دریافت ورودی از سمت کاربر است.
گام پنجم: پیادهسازی Scanner در جاوا
بعد از آشنایی با مراحل پیادهسازی Scanner در این بخش مثالی عملی از کاربرد این کلاس در جاوا ارائه شده است. برای این منظور حوزه بازیسازی را در نظر بگیرید که در فرایند ساخت شخصیت اصلی بازی به اطلاعات ورودی بسیاری نیاز است. معمولاً در این مرحله بازیها اطلاعات مشخصی همچون نام شخصیت، قد، وزن و سایر موارد را از کاربر درخواست میکنند. با دریافت اطلاعات از کاربر، بازی از این اطلاعات برای بخشهای مختلف نظیر گفتگو بین شخصیتهای بازی یا تنظیم ویژگیهای ظاهری کاراکتر بازی استفاده میکند. در ادامه، برای درک بهتر کاربرد Scanner در جاوا نمونه کد زیر آورده شده است.
در نمونه کد بالا، شیuserInput از کلاس Scanner ایجاد شده است. سپس، برنامه از کاربر درخواست میکند تا نام را وارد کند. به عنوان مثال، اگر کاربر نامDoctor Who را در این بخش وارد کند، آنگاه با استفاده از متدnextLine() این نام در متغیرname ذخیره میشود. در انتها نیز خروجی حاصل از اجرا نمونه کد بالا بعد از وارد کردن نام توسط کاربر به صورت زیر خواهد بود.
Welcome to Gallifrey, Doctor Whoهمچنین، در این مثال برای دریافت نام کاربر میتوان از متدnext() به جای متدnextLine() استفاده کرد.
در نتیجه، خواندن اطلاعات از ورودی تا رسیدن به فاصله خالی یا فشردن دکمه Space ادامه خواهد یافت. خروجی حاصل از استفاده از متدnext() به جای متدnextLine() به صورت زیر خواهد بود.
Welcome to Gallifrey, Doctor
کلاس Scanner در جاوا چگونه کار میکند؟
کلاس Scanner در جاوا به کمک متدهای خود امکانی را برای دریافت و خواندن اطلاعات ورودی توسط کاربر فراهم میکند.
در ادامه مراحل دریافت و خواندن اطلاعات ورودی توسط این کلاس آورده شده است.
- کلاس Scanner با استفاده از الگو مشخص شده ورودی دریافتی را به بخشهای کوچکتر تقسیم میکند.
- سپس، با کمک متدnext() به ترتیب بخشهای مشخص شده را خوانده و پردازش میکند.
- در نهایت، برای آزادسازی منابع سیستم به کمک متدClose() نمونه ساخته شده از کلاس Scanner بسته میشود.
مثالی از نحوه کار Scanner در جاوا
کلاس Scanner در جاوا هر خط از اطلاعات موجود در ورودی را میخواند و در فرایند پردازش اطلاعات آنها را به بخشهای کوچکتری به نام «توکن» (Token) تقسیم میکند. در واقع، توکنها عناصر کوچک قابل درک توسط کامپایلر جاوا هستند. به عنوان مثال، اطلاعات زیر را به عنوان ورودی در جاوا در نظر بگیرید.
He is 22
در این مثال، شی ایجاد شده از کلاس Scanner تمام خط ورودی را میخواند و آن را به توکنهایHe ،is و22 تقسیم میکند. سپس، شی بر روی توکنهای ایجاد شده عمل پیمایش را انجام میدهد و هر توکن را با متد مناسب از ورودی میخواند.
چند مثال از کاربرد Scanner در جاوا
با توجه به متدهای مختلف موجود در کلاس Scanner و امکان ترکیب این متدها با سایر ساختارهای موجود در دنیای برنامه نویسی میتوان از Scanner در بخشهای مختلفی استفاده کرد.
در ادامه برخی از کاربردهای رایج کلاس Scanner به همراه ارائه نمونه کد مورد بررسی قرار خواهد گرفت.
خواندن اطلاعات از ورودی
رایجترین کاربرد کلاس Scanner در جاوا خواندن اطلاعات از ورودی است. با استفاده از دستورSystem.in میتوان اطلاعات وارد شده توسط کاربر را به عنوان ورودی برنامه دریافت کرد. در ادامه، نمونه کد زیر نحوه دریافت اطلاعات از کاربر و نمایش آن در خروجی را نشان میدهد.
در قطعه کد بالا ابتدا یک شی از کلاس Scanner با نامsc ایجاد شده است. سپس، با چاپ عبارتی در خروجی به کاربر اطلاع میدهد تا نام خود را وارد کند. در ادامه، با استفاده از متدnext() نام وارد شده توسط کاربر در متغیرname ذخیره و در خروجی نمایش داده خواهد شد. خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
Please enter your name Pankaj Hello Pankaj
در مثال بالا، کاربر تنها نام خود را وارد کرد. برای بررسی بهتر کد بالا این مرتبه نام و نام خانوادگی را همزمان وارد میکنیم. خروجی حاصل بعد از وارد نمودن نام کامل توسط کاربر به صورت زیر خواهد بود.
Please enter your name Pankaj Kumar Hello Pankaj
با وارد کردن نام کامل توسط کاربر تغییری در خروجی کد رخ نمیدهد، زیرا بین نام و نام خانوادگی کاربر فضای خالی وجود دارد. در اینجا Scanner ورودی را به دو بخشPankaj وKumar تقسیم میکند، اما متدnext() تنها یک مرتبه فراخوانی میشود. در نتیجه، تنها عبارتHello Pankaj در خروجی چاپ میشود. برای رفع این مشکل میتوان از متدuseDelimiter() برای انتقال جدا کننده به کاراکتر جدید استفاده کرد. در ادامه تغییرات رخ داده در قطعه کد بالا بعد از استفاده از این متد نشان داده شده است.
تجزیه اطلاعات فایل به کمک Scanner در جاوا
کاربرد مهم دیگر کلاس Scanner در جاوا تجزیه اطلاعات موجود در فایل است. در ادامه به بررسی مثالی ساده برای خواندن و تجزیه اطلاعات موجود در یک فایل با پسوندcsv پرداخته خواهد شد. به عنوان گام نخست فایلemployees.csv همراه با محتوای زیر را در نظر بگیرید.
1,Jane Doe,CEO 2,Mary Ann,CTO 3,John Lee,CFO
در ادامه، قطعه کد زیر اطلاعات درون فایل را تجزیه کرده و آنها را در خروجی چاپ خواهد کرد.
در نخستین گام یک شی از کلاس Scanner برای دریافت فایل با پسوندCSV و جدا کنندهای برای رفتن به خط جدید مشخص شده است. بدین ترتیب اطلاعات موجود در فایل خط به خط مورد بررسی قرار خواهند گرفت. سپس، با استفاده از یک شی جدید از کلاس Scanner و «کاما» (,) به عنوان جدا کننده هر خط از اطلاعات موجود در فایل تجزیه میشود. سپس، اطلاعات مربوط به هر خط درون شی مشخص شده ذخیره میشود و به لیست اضافه خواهد شد. در نهایت، اطلاعات درون لیست در خروجی چاپ میشود.
استفاده از Scanner همراه با عبارات منظم در جاوا برای پردازش اطلاعات
امکان ترکیب عبارتهای منظم با متدهای موجود در کلاس Scanner وجود دارد. به عنوان مثال، میتوان از این مورد برای پردازش اعداد صحیح درون یک رشته استفاده کرد. برای این منظور باید کلاس Scanner را در ترکیب با عبارت منظم مربوط به «کاراکترهای غیر رقمی» (non-digit) به عنوان جدا کننده به کار برد تا تنها اعداد صحیح از ورودی برای پردازش دریافت شوند. در ادامه قطعه کد مربوط به استفاده از Scanner همراه با عبارات منظم در جاوا برای پردازش اطلاعات ارائه شده است.
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
1 2 345 67 8 9 10
خواندن کاراکتر در جاوا
کلاس Scanner در جاوا متدهای مختلفی همچونnextInt() برای خواندن یک عدد صحیح، متدnextDouble() برای خواندن یک عدد اعشاری و متدnextLong() برای خواندن یک مقدار از نوع Long را دارد، اما متد جداگانهای برای خواندن کاراکتر در این کلاس وجود ندارد. برای همین منظور باید از ترکیب متدnext() در کلاس Scanner و متدcharAt() در کلاس String استفاده کرد.

متدnext() در کلاس Scanner در هر لحظه توکن بعدی ورودی را فارغ از نوع آن دریافت میکند. همچنین، متدcharAt() کاراکتر موجود در «اندیس» (Index) مشخص شده را بر میگرداند. در یک دنباله کاراکتری اندیس مربوط به کاراکترها از مقدار 0 شروع میشود. نمونه کد زیر نحوه خواندن کاراکتر در جاوا به کمک کلاس Scanner را نشان میدهد.
خروجی حاصل از نمونه کد بالا به صورت زیر خواهد بود.
Input a character: R You have entered R
بررسی متدهای کلاس Scanner در جاوا به همراه مثال
پیشتر در بخشهای قبلی این مطلب متدهای کلاس Scanner در جاوا مورد بررسی قرار گرفتند. در ادامه کاربرد تعدادی از متدهای کلاس Scanner به همراه مثال عملی مورد بررسی قرار خواهد گرفت.
متد nextInt در جاوا
از این متد در کلاس Scanner برای خواندن یک داده از نوع عدد صحیح استفاده میشود. در ادامه نمونه کد زیر کاربرد این متد را نشان میدهد.
خروجی حاصل از اجرای کد بالا به صورت زیر خواهد بود.
Enter an integer: 22 Using nextInt(): 22
متد nextDouble در جاوا
از این متد در کلاس Scanner برای خواندن یک داده از نوع عدد اعشاری استفاده میشود. در ادامه نمونه کد زیر کاربرد این متد را نشان میدهد.
خروجی حاصل از اجرای قطعه بالا به صورت زیر خواهد بود.
Enter Double value: 33.33 Using nextDouble(): 33.33
متد next در جاوا
متدnext() برای خواندن یک رشته از ورودی مورد استفاده قرار میگیرد. در ادامه قطعه کد زیر کاربرد این متد را نشان میدهد.
خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
Enter your name: Jonny Walker Using next(): Jonny
با بررسی خروجی نمونه کد بالا متوجه خواهید شد که با وجود وارد کردن نام کامل تنها بخش اول نام توسط ورودی دریافت شده است. دلیل این امر عملکرد متدnext() است که خواندن رشته را تا رسیدن به «عبارت خالی» (Whitespace) ادامه میدهد. به عبارتی دیگر، این متد با رسیدن به عبارت خالی رشته دریافتی را تا همان قسمت برگشت میدهد.
متد nextLine در جاوا
این متد نیز برای خواندن رشته از ورودی مورد استفاده قرار میگیرد. در نمونه کد زیر کاربرد این متد نشان داده شده است.
خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
Enter your name: Jonny Walker Using nextLine(): Jonny Walker
در این مثال هر دو قسمت مربوط به نام در خروجی چاپ میشود.
تفاوت next و nextLine در جاوا چیست؟
هر دو متد برای خواندن رشته از ورودی مورد استفاده قرار میگیرند، اما تفاوتهایی نیز با یکدیگر دارند. در واقع، متدnext() تا رسیدن به کاراکتر خالی یا Whitespace به خواندن از ورودی ادامه میدهد. در نقطه مقابل اما متدnextLine() کاراکترهای خالی را نیز دریافت میکند و تا رسیدن به کاراکتر\n اطلاعات را از وروی میخواند. به بیان سادهتر این متد تا رسیدن به خط بعدی یا فشردن دکمه Enter به خواندن رشته ورودی ادامه میدهد.
مزایا و معایب کلاس Scanner در جاوا چیست؟
این کلاس نیز همانند هر کلاس دیگری در جاوا به توسعهدهندگان در امر توسعه کمک میکند. در ادامه مزایای استفاده از کلاس Scanner در جاوا فهرست شدهاند.
- برای شناسایی انتهای هر قطعه از داده میتوان از توکن منحصر به فردی استفاده کرد.
- امکان تجزیه دادههای خوانده شده توسط Scanner به نوعهای دادهای از پیش تعیین شده همچونint ،float ،short ،boolean و سایر موارد وجود دارد.
- امکان خواندن نوعهای دادهای اولیه و رشتهها با Scanner وجود دارد.
- کلاس Scanner گزینه بسیار مناسبی برای خواندن اطلاعات از فایل است.
- منطق کار با این کلاس بسیار آسان است.
در کنار نقاط قوت کلاس Scanner میتوان چند ایراد کوچک نیز از آن گرفت. برخی از نقاط ضعف این کلاس در ادامه آورده شده است.
- کلاس Scanner در جاوا ایمن نیست.
- دارای تنها «یک کیلوبایت» (1KB) حافظه بافر است.
- با توجه به سرعت پایین تجزیه جریانهای داده در کلاس Scanner، این کلاس قادر به پشتیبانی از ورودی و خروجیهای سریع در جاوا نیست.
- کلاس Scanner تنها در نسخه 1.5 یا بالاتر جاوا در دسترس قرار دارد.
سوالات متداول Scanner در جاوا
بعد از بررسی کامل کلاس Scanner در جاوا در این بخش به تعدادی از پرتکرارترین سوالات این حوزه پاسخ داده خواهد شد.
روشهای دریافت ورودی از کاربر در جاوا کدامند؟
دریافت ورودی از کاربر یکی از اولین کارهایی است که برنامهنویسان تازه کار یاد میگیرند. برای دریافت ورودی در جاوا علاوه بر کلاس Scanner روشهای دیگری نیز وجود دارد. در ادامه روشهای دریافت اطلاعات از ورودی در جاوا ارائه شده است.
- استفاده از شی کنسول در جاوا به صورت سراسری یا Global
- ساخت یک شی از کلاس Scanner در جاوا
- استفاده از عناصر رابط کاربری
- کار با System.in در جاوا برای دریافت جریان ورودی از داده
بهترین زمانی باید از Scanner در جاوا استفاده کرد؟
از کلاس Scanner در جاوا برای دریافت اطلاعات از کاربر و تجزیه آن به نوعهای دادهای اولیه همچونint ،double وString استفاده میشود. علاوه بر این، تجزیه اطلاعات به کمک عبارات منظم نیز از دیگر کاربردهای این کلاس است.
Scanner یا BufferReader کدامیک سریعتر است؟
از هر دو کلاس برای خواندن جریان ورودی اطلاعات استفاده میشود. کلاس BufferReader نسبت به Scanner سریعتر است، زیرا این کلاس تنها یک جریان ورودی از اطلاعات را میخواند. در نقطه مقابل، کلاس Scanner امکان دریافت اطلاعات به شکلهای مختلف را دارد.
آیا امکان ورودی گرفتن آرایه در جاوا به کمک کلاس Scanner وجود دارد؟
بله، امکان دریافت آرایه به عنوان ورودی توسط متدهای کلاس Scanner در جاوا وجود دارد. برای این منظور باید ابتدا طول آرایه را به دست آورد و سپس، به کمک یک حلقه تکرار مقادیر را از کاربر دریافت کرد.
جمعبندی
در دنیای توسعه نرمافزار هر اپلیکیشنی برای کارکرد صحیح نیاز به دریافت اطلاعات از کاربر دارد و این موضوع امری اجتناب ناپذیر است. بسیاری از وبسایتها و اپلیکیشنها برای ساخت حساب کاربری، تشخیص علاقهمندیهای کاربر و نمایش محتوای اختصاصی نیازمند دریافت برخی اطلاعات از سمت کاربر هستند. این مسئله در نرمافزارها و برنامههای تعاملیتر نظیر بازیهای ویدیویی از اهمیت بیشتری برخوردار است، زیرا به طور پیوسته باید اطلاعاتی از سمت کاربر به برنامه منتقل شود. بنابراین، آشنایی با نحوه و فرایند تعامل با کاربر و دریافت اطلاعات از اهمیت بالایی برخوردار است. در زبان برنامه نویسی جاوا کلاس Scanner مسئولیت برقراری ارتباط با کاربر را بر عهده دارد.
بر همین اساس در این مطلب از مجله فرادرس به این سوال پاسخ داده شد که Scanner در جاوا چیست و چه کاربردی دارد. همچنین، نحوه ایجاد شی از این کلاس و مراحل پیادهسازی آن توضیح داده شد. علاوه بر این، ضمن بیان نحوه کار کلاس Scanner در جاوا، متدهای مختلف موجود در آن به همراه مثال معرفی شدند.