معرفی کلاس اسکنر در زبان برنامه نویسی جاوا


در طراحی برنامه های کاربردی زمان های بسیاری برای ما پیش خواهد آمد که نیاز داریم تا کاربر بخشی از اطلاعات ورودی را از طریق صفحه کلید وارد برنامه کند تا بر اساس اطلاعات ورودی، برنامه طراحی شده نتیجه مرتبط را به کاربر اعلام کند.

برای این منظور می بایست با کلاس Scanner در زبان برنامه نویسی جاوا آشنا شویم. در حقیقت این کلاس در API زبان برنامه نویسی جاوا تعبیه شده است و ما صرفاً با Import کردن این کلاس و همچنین ساخت یک شیئ از روی آن، می توانیم از قابلیت های آن استفاده کنیم. برای روشن شدن این مطلب پروژه ی جدیدی در اکلیپس تحت عنوان ScannerIntro ایجاد می کنیم. سپس کلاسی تحت عنوان Project در آن ایجاد می کنیم (کلیه نام ها اختیاری می باشند.) در ابتدا برنامه ما می بایست به شکل زیر باشد:

class Project {
    public static void main(String[] args) {

    }
}

در حقیقت از آنجا که نیاز داریم تا برنامه ما یک نقطه شروع داشته باشد، همانطور که در جلسات گذشته توضیح داده شد& در حین ایجاد کلاس گزینه public static void main را تیک می زنیم. در این برنامه ما نیاز داریم تا این امکان را به کاربر خود بدهیم تا بتواند از طریق صفحه کلید اطلاعات را وارد برنامه کند، از اینرو کلاس Scanner را وارد برنامه خود می کنیم و نامی به دلخواه همچون myScanner برای آن در نظر می گیریم. به تصویر زیر توجه کنید:

محیط برنامه نویسی اکلیپس با قرار دادن نقطه چین دوره واژه های Scanner و همچنین قرار دادن یک علامت ستاره کنار نام فایل ما -همان طور که در تصویر فوق مشاهده می شود- به ما اخطار می دهد که مشکلی در برنامه وجود دارد. به منظور یافتن راه حل موس خود را روی علامت نقطه چین نگه می داریم و باکسی همچون تصویر زیر مشاهده خواهیم کرد:

در حقیقت محیط برنامه نویسی اکلیپس چندین پیشنهاد برای رفع مشکل به ما می دهد که ما نیاز داریم تا تک تک موارد پیشنهادی را مورد بررسی قرار دهیم. از آنجا که می بایست مد نظر داشته باشیم که هر وقت یک کلاس تعبیه شده در جاوا را در برنامه خود مورد استفاده قرار می دهیم حتما بایستی آنرا Import یا وارد برنامه خود کنیم، به راحتی اولین گزینه که Import Scanner به معنی کلاس اسکنر را وارد برنامه کن است را کلیک می کنیم. حال کدی به شکل زیر خواهیم داشت:

import java.util.Scanner;
class Project {
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
    }
}

(لازم به ذکر است که به جای Import کردن توسط محیط برنامه نویسی اکلیپس، می توانیم خودمان نیز کدهای Import مورد نیاز را به صورت دستی وارد برنامه کرده و یا پس از استفاده از یکی از کلاس های API جاوا همچون کلاس Scanner کلیدهای Ctrl و Shift و حرف O را به طور هم زمان فشار دهیم که با این کار فرآیند Import انجام خواهد شد.)

پس از Import کردن، همان طور که در کد فوق مشاهده می شود یک خط کد ;import java.util.Scanner به ابتدای سورس کد پروژه ی ما اضافه می شود. از این پس، بعد هر چند بار که نیاز داشته باشیم می توانیم بدون هیچ مشکلی از روی کلاس Scanner یک شیئ جدید ساخته و آن را مورد استفاده قرار دهیم (نحوه ساخت اشیاء در زبان جاوا به طور مفصل در آموزش های آتی مورد بررسی قرار خواهد گرفت.)

واژه ی Scanner نشانگر یک کلاس در زبان جاوا است که از پیش نوشته شده است و ما صرفاً آن را وارد برنامه خود می کنیم. واژه myScanner یک نام است به معنی کلاس اسکنر من که ما به صورت دلخواه برای نام شیئ ساخته شده از روی کلاس Scanner در نظر می گیریم. پس از علامت = با نوشتن کلید واژه ی new ما از اکلیپس می خواهیم که یک شیئ جدید از کلاس Scanner تحت عنوان myScanner برای ما ایجاد کند. حال پارامترهایی که داخل پرانتز قرار دارند عبارتند از کلید واژه System که حاکی از کلاسی است که این امکان را به جاوا می دهد که هرآنچه خارج از اختیار JVM بود وارد برنامه شود و کلید واژه in که موجب می گردد ورودی کامپیوتر یا لپ تاپ ما مورد استفاده این کلاس قرار گیرد که این ورودی همان صفحه کلید می باشد. حال می توانیم برنامه خود را تست کنیم. برای این منظور کد خود را به شکل زیر تکمیل می کنیم:

import java.util.Scanner;
class Project {
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.println(myScanner.nextLine());
    }
}

در حقیقت با این دستور جدید که وارد برنامه خود کردیم، قصد داریم هر آنچه را که از طریق صفحه کلید وارد می کنیم برای ما مجدد نمایش داده شود. داخل دستور ;()System.out.println ما نام شیئ که از روی کلاس Scanner ایجاد کردیم را نوشته سپس متدی تحت عنوان ()nextLine ضمیمه آن می کنیم. به طور خلاصه کار این متد آن است که هر نوع ورودی از طریق صفحه کلید را وارد برنامه کند. حال اگر بخواهیم ورودی خاصی از صفحه کلید را مد نظر داشته باشیم بایستی از متد مخصوص همان داده ورودی استفاده کنیم.

متد ()nextLine حاکی از آن است که هر آنچه را وارد صفحه کلید کنیم به شکل یک string یا رشته در کنسول نمایش داده شود. برای مثال برنامه را اجرا کرده، سپس در بخش کنسول، نشانگر موس خود را مشاهده می کنیم که چشمک می زند به معنی این که می توانیم در آن چیزی وارد نماییم. جمله ای به دلخواه مثل My name is Behzad Moradi را وارد می کنیم سپس دکمه Enter را می زنیم و مشاهده می کنیم که دقیقاً همان چیزی را که از طریق صفحه کلید وارد برنامه کردیم را نمایش خواهد داد:

پس از آشنایی با یکی از کلاس های مفید در زبان برنامه نویسی جاوا، در قمست آتی خواهیم دید که چگونه می توان نوع ورودی داده را برای این کلاس از پیش تعیین کرد به طوری که کاربر فقط و فقط اجازه داشته باشد همان داده ای که از وی خواسته شده است را وارد برنامه کند.

دانلود فایل‌های تمرین
لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
mahtab.rashidi
mahtab.rashidi
سلام. وقت بخیر
ممکنه بفرمایید فایل تمرین چجوری باز میشه؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
گه اشتباه نکنم باید اون رو توی یک IDE مثل Eclipse ایمپورت کنید تا بتونید به سورسکدهای اون دسترسی داشته باشید .

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام ، خسته نباشید
موقع ایمپورت کردن با این ارور مواجه میشم : The type com.sun.java_cup.internal.runtime.Scanner is not accessible
چه طور میشه برطرفش کرد ؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
معمولاً در ایمپورت کردن ، اگه ورژن های SDK ، JDK و حتی امولیتور دو سیستمی که ابتدادر آن نوشته شده با سیستمی که میخواهید در اون ایمپورت رو انجام بدید یکسان نباشه به مشکل بر میخورید و هر مشکل نیازمند بررسی مولفه ها زیادی است که در سوالا شما نامی از ورژنهای ذکر شده نیست ، به احتمال قوی شما به همراه استاد در ابتدای آموزشها کیتهای برنامه نویسی رو نصب نکرده اید ف بلکه از قبل یک محیط برنامه نویسی داشته اید و حال میخواهید کدهای استاد را در IDE خودتون وارد کنید که به مشکل بر میخوردی ، بهتراست یکبار دیگر تمام ورژنها را حذف و مجدداً مطابق فرمایشات استاد در شرف نصب آن برآید اینگونه است که مانند سایر کاربران به این مشکل بر نمیخورید ان شاءالله ، اما قبل از آن به دو لینک مقابل مراجعه ای داشته باشید شاید تونستید زودتر به نتیجه برسید : https://stackoverflow.com/questions/5101326/java-cup-cannot-be-resolved همچنین http://www2.cs.tum.edu/projects/cup/

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام.بسیار عالی .خسته نباشید.لطفن بفرمایید فایل تمرین و با چی باید باز کنیم که نمایش داده بشه؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
فایل تمرنی رو دانلود میکنید ، این فایل تمرین یک فایل Zip هست ، اون رو به مکانی قابل دسترس مثل دستکتاب منتقل کنید از طریق IDE خودتون ( درصورتی که از ایکلیپس استفاده میکنید : ) از آپشنهای ایکلیپس گزینه ی File رو انتخاب کنید ، سپس روی import بزنید. در پنجره ی ای که برای شما باز شده باید روی گزینه ی Existing Project into Workspace رو انتخاب کنید و بعد از اون Select root directory رو کلیک کرده و به آدرسی بروید که فایل zip که دانلود کردید رو به اونجا منتقل کدی ، اون رو انتخاب کنید و Ok یا گزینه یهای مشابهش رو بزنید و منتظر بمونید تا اینکه پروژه در IDE شما ایمپورت بشه .

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام
باتشکر از اموزش های عالی
یه موردی که میشه اضافه بشه این هستش که صفحات اموزش شماره گذاری بشن
چون ممکنه یه زمانی اشتباها سایتو ببندیم و فرضا اواسط اموزش باشیم
اون موقع بجای اینکه روومثلا صفحه ۴۰بزنیم باید ۴۰بار دکمه نکست رو بزنیم
موفق باشید
Hosein.Amirifa
Hosein.Amirifa
میتونی اخرین صفحه رو bookmark کنی که راحت باشی

در پاسخ به

muhamad64
muhamad64
من که هر دفعه میگم خدا صاحب سایتو پدرشو بیامرزه سایته خوبیه
تیک مطالعه کردم را بزنید

در پاسخ به

hadimotamedi44
hadimotamedi44
با سلام و خسته نباشید خدمت دوستان سکان آکادمی
ممنون از آموزشای عالیتون
کاربر میهمان
کاربر میهمان
سلام من به صورت زیر انجام میدم ولی جواب نمیده میشه راهنمایی کنید
import java.util.Scanner;

public class Project {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println(myScanner.nextLine(My name is Behzad Moradi:));
}

}
yazdang33
yazdang33
سلام. متد nextLine هیچگونه پارامتری ندارد ولی شما درون پرانتزهای این متد متنی نوشته اید. در حالی که نباید چیزی درون این پرانتز ها بنویسید. وقتی متدی پارامتری ندارد پس آرگومانی هم نمیتواند به پارامتر ارسال شود. چون پارامتری وجود ندارد.

در پاسخ به

عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
با سلام ، علاوه بر توصیه ی دوستمون ، در کد شما مغایرتی یافت شد ، public class Project این کد را اشتباه وارد کرده اید ، کلا رو نباید پابلیک تعریف کنید ، با این کار از این خط تا به آخر اشتباه خواهد شد ، کافیست ، public را از ابتدای این خط بردارید .

در پاسخ به

useramin47
useramin47
نباید الان بنویسی my name is behzad moradi


عین این رو بنویس بعد run کن
بعد هر چی میخوای بنویس تو کنسول

در پاسخ به

کاربر میهمان
کاربر میهمان
import java.util.Scanner;

public class Project {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println(myScanner.nextLine(My name is Behzad Moradi:));
}

}
کاربر میهمان
کاربر میهمان
In computer science, a resource leak is a particular type of resource consumption by a computer program where the program does not release resources it has acquired. This condition is normally the result of a bug in a program.
در علوم رایانه ای، نشت منابع ، نمونه خاصی از استفاده منابع توسط برنامه های رایانه ای میباشد که برنامه، منابع بدست اورده رو ازاد نمیکنه! این وضعیت به طور معمول ناشی از وجود خطا در برنامه میباشد.
کاربر میهمان
کاربر میهمان
Resource leak!! نشت منابع؟؟
یعنی چی؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
نشت اطلاعات توضیح زیادی دارد ، بهتر است به لینک مقابل مراجعه فرماید ، در ویکپدیای فارسی به خوبی این مفهموم به شما منتقل خواهد شد . https://fa.wikipedia.org/wiki/%D9%86%D8%B4%D8%AA_%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام
علتش چیه که اکلیپس از ما میخواد ابجکت اسکنرو ببندیم؟
درحالی که برنامه درست اجرا میشه ؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
این سری از مشکلات در ایکلیپس امری عادی است . برای رفع این موضوع شما میبایست حوصله به خرج بدید ، مثل این قضیه اگر دیدید معقول نیست حتماً یکبار برنامه رو رری استارت کنید با بستن و اجرای مجدد .

در پاسخ به

کاربر میهمان
کاربر میهمان
با سلام. در یک کلام.... آموزش ها واقعا عالیه. ممنون از شما.
همچنین جا داره تشکر کنم بابت استفاده از فونت بی نظیر IranSans
سید مصطفی
سید مصطفی
چرا این دستور اسکنر در سیستم من کار نمی کنه و مشکل داره ؟ و وقتی در نت پد می نویسم و می خوااهم بایت کد کنم خطا میده ؟
مثلا برنامه ی ساده زیر رو خطا میده
import java.util.Scanner;
public class mesal3{
public static void main(String[] args)
{
Scanner n = new Scanner(System.in);
System.out.println(n.nextLine());
}
}
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
در کدهای شما مشکلی یافت نشد ، یکبار IDE را ری استادت کنید احتمالا درست میشه . فقط سعی کنید در نام کلاس تا حد ممکن از حروف استفاده کنید ، در مثال شما آورده شده : public class mesal3 ، سعی کنید اینگونه بنویسید : public class thirdExample این نوع از نام گذاری به NaminConvention جاوا نزدیکتر هست .

در پاسخ به

nahid
nahid
در مورد فایل تمرین تا جاییکه من میدونم همون سورس کد آموزش هر بخش هست که میتونیم بعد از اکسترکت از داخل فولدر src ، فایل progect.java را وارد اکلیپس کنیم. شاید با مقایسه این تمرین با کدی که خودمون نوشتیم بتونیم رفع اشکال کنیم.
nahid
nahid
سلام و خدا قوت...فایل تمرین همون سورس کد مثالهایی هست که خودتون توی آموزشها میزنید؟ ممکنه توضیح بدین؟ چجوری استفاده کنیم؟؟؟؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
بله سورس کد تمرین ، همون سورس کدی هست که در هر آموزش مورد کنکاش قرار میگیره ، این سورس کد برای این در دسترس شما هست که اگه با خطایی مواجه شدید پروژه را ایمپورت کنید تا بتونید از کدها بی نقص استاد استفاده کنید و خطاهای خودتون رو بیابید . برای اپیورت اینگونه عمل کنید : فایل تمرنی رو دانلود کنید ، این فایل تمرین یک فایل Zip هست ، اون رو به مکانی قابل دسترس مثل دستکتاب منتقل کنید از طریق IDE خودتون ( درصورتی که از ایکلیپس استفاده میکنید : ) از آپشنهای ایکلیپس گزینه ی File رو انتخاب کنید ، سپس روی import بزنید. در پنجره ی ای که برای شما باز شده باید روی گزینه ی Existing Project into Workspace رو انتخاب کنید و بعد از اون Select root directory رو کلیک کرده و به آدرسی بروید که فایل zip که دانلود کردید رو به اونجا منتقل کدی ، اون رو انتخاب کنید و Ok یا گزینه یهای مشابهش رو بزنید و منتظر بمونید تا اینکه پروژه در IDE شما ایمپورت بشه .

در پاسخ به

Shayan
Shayan
سلام.میخواستم بدونم چطور از فایل تمرین میشه استفاده کرد؟ ممنون
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
فایل تمرنی رو دانلود میکنید ، این فایل تمرین یک فایل Zip هست ، اون رو به مکانی قابل دسترس مثل دستکتاب منتقل کنید از طریق IDE خودتون ( درصورتی که از ایکلیپس استفاده میکنید : ) از آپشنهای ایکلیپس گزینه ی File رو انتخاب کنید ، سپس روی import بزنید. در پنجره ی ای که برای شما باز شده باید روی گزینه ی Existing Project into Workspace رو انتخاب کنید و بعد از اون Select root directory رو کلیک کرده و به آدرسی بروید که فایل zip که دانلود کردید رو به اونجا منتقل کدی ، اون رو انتخاب کنید و Ok یا گزینه یهای مشابهش رو بزنید و منتظر بمونید تا اینکه پروژه در IDE شما ایمپورت بشه .

در پاسخ به

امین ناطق
امین ناطق
سلام در ایجاد پروژه جدید مشکلی ندارم و گزینه Public static void main رو هم تیک میزنم و پروژه جدید رو ایجاد میکنم.در ایجاد کلاس هم مشکلی ندارم.
برنامه ای که در بالا نوشته شده رو هم بطور کامل مینویسم اما اجرا نمیشه و اما وقتی موس رو روی scanner نگه میدارم و از میان راهنمایی های ایکلیپس گزینه اول رو میزنم مجددا پنجره ایجاد کلاس باز میشه لطفا راهنمایی بفرمایید.
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
چون توضیحات شکسته ای ایراد فرمودید باید تصویری از محیط کد شما رو داشته باشیم با بتونیم به شما کمک کنیم .

در پاسخ به

zahra_san
zahra_san
سلام
من نمیدونم چطور باید فایل های تمرین رو باز کنم و استفاده کنم هیچ کدودم از فایل هایی که توی پوشه قرار داره برام باز نمیشه؟؟؟
میشه راهنماییم کنید...
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
فایلهای دورن فایل زیپی که دانلود کردید قرار نیست برای شما باز بشه ، بلکه شما باید اون رو درون یک IDE ( مثل ایکلیپس ایمپورت کنید تا از کدها دانلود شده استاد استفاده کنید . برای اپمورت کردن مراحل ذیل رو پیش برید : فایل تمرنی رو دانلود کنید ، این فایل تمرین یک فایل Zip هست ، اون رو به مکانی قابل دسترس مثل دسکتاب منتقل کنید از طریق IDE خودتون ( درصورتی که از ایکلیپس استفاده میکنید : ) از آپشنهای ایکلیپس گزینه ی File رو انتخاب کنید ، سپس روی import بزنید. در پنجره ی ای که برای شما باز شده باید روی گزینه ی Existing Project into Workspace رو انتخاب کنید و بعد از اون Select root directory رو کلیک کرده و به آدرسی بروید که فایل zip که دانلود کردید رو به اونجا منتقل کدی ، اون رو انتخاب کنید و Ok یا گزینه یهای مشابهش رو بزنید و منتظر بمونید تا اینکه پروژه در IDE شما ایمپورت بشه .

در پاسخ به

کاربر میهمان
کاربر میهمان
من برنامه رو کاملا اجرا کردم و مشکلی نداشت ولی یک هشدار کنار خط چهار گذاشته به ابن عنوان:
resource leak : myScanner is never closed
مشکل چیه؟
hadimotamedi44
hadimotamedi44
بعد از کامل کردن کردن برنامه بعد از خط 5 به صورت جداگانه و قبل از آکولادها
myScanner رو close کنید به این صورت
;()myScanner.close

در پاسخ به

کاربر میهمان
کاربر میهمان
فایل تمرین را هم دانلود کردم ولی نمیدونم باید چیکارش کنم. میشه راهنمایی کنید لطفا؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
فایل تمرنی رو دانلود میکنید ، این فایل تمرین یک فایل Zip هست ، اون رو به مکانی قابل دسترس مثل دستکتاب منتقل کنید از طریق IDE خودتون ( درصورتی که از ایکلیپس استفاده میکنید : ) از آپشنهای ایکلیپس گزینه ی File رو انتخاب کنید ، سپس روی import بزنید. در پنجره ی ای که برای شما باز شده باید روی گزینه ی Existing Project into Workspace رو انتخاب کنید و بعد از اون Select root directory رو کلیک کرده و به آدرسی بروید که فایل zip که دانلود کردید رو به اونجا منتقل کدی ، اون رو انتخاب کنید و Ok یا گزینه یهای مشابهش رو بزنید و منتظر بمونید تا اینکه پروژه در IDE شما ایمپورت بشه .

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام؛
چرا فایل تمرین باز نمیشه؟
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
در واقع شما باید این فایل زیپ رو دانلود در IDE یا همون ایکلیپس یا اندروید استودیو تون امپورت کنید تا بتونید از کدها استفاده کنی و یا اون رو اجرا کنید ، برای ایمپورت کردن مراحل ذیل ر پیش برید : فایل تمرنی رو دانلود کنید ، این فایل تمرین یک فایل Zip هست ، اون رو به مکانی قابل دسترس مثل دسکتاب منتقل کنید از طریق IDE خودتون ( درصورتی که از ایکلیپس استفاده میکنید : ) از آپشنهای ایکلیپس گزینه ی File رو انتخاب کنید ، سپس روی import بزنید. در پنجره ی ای که برای شما باز شده باید روی گزینه ی Existing Project into Workspace رو انتخاب کنید و بعد از اون Select root directory رو کلیک کرده و به آدرسی بروید که فایل zip که دانلود کردید رو به اونجا منتقل کدی ، اون رو انتخاب کنید و Ok یا گزینه یهای مشابهش رو بزنید و منتظر بمونید تا اینکه پروژه در IDE شما ایمپورت بشه .

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام خسته نباشید من وقتی اشاره گر موس رو روی myScanner میارم گزینه ایمپورت نمیاد ....
چیکار کنم؟؟؟؟؟؟!
محمد صالح
محمد صالح
سلام
از کلیدهای ترکیبی ctrl+shift+o استفاده نمایید

در پاسخ به

aliireza
aliireza
سلام من وقتی برنامه رو کامپایل میکنم هیچی نشون نمیده به عنوان مثال این سورس کد منه
;(Scanner myScanner = new Scanner(System.in)
;(()System.out.println(myScanner.nextLine)
که در خط کد اول زیر کلمه myScanner خط زرد کشیده که نمیدونم دلیلش چیه هر کاری کردم درست نشد.
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
ارورهای خط زرد برای پروژه ی شما مشکل ساز نیستند ، مثلا برای زمانهایی هست که یک اینتیجر رو تعریف کردید ، اما هنوز از اون توی هیچ جا از پروژه تون استفاده نکردید. خطای شما از جای دیگری آب میخورد . در خط اول شما یک پرانتز زیادی است . آن را بر دارید مشکل مرتفع میشود ( در این دو خط از کد شما خطای دیگری وجود ندارد )

در پاسخ به

کاربر میهمان
کاربر میهمان
این کار رو کردم ، ارور برطرف میشه ولی تو قسمت کنسول این پیام رو نمایش میده:
Exception in thread "main" java.lang.IllegalStateException: Scanner closed
at java.util.Scanner.ensureOpen(Unknown Source)
at java.util.Scanner.findWithinHorizon(Unknown Source)
at java.util.Scanner.nextLine(Unknown Source)
at Project.main(Project.java:8)
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
در جایی که دیگر بدان نیازی ندارید ، از دستور ;()myScanner.close استفاده نمایید ، همانطور که دستمون عرض کرند در آخرین جایی که دیگر مطمئنید بعد از آن دیگر از اسکنر استفاده نمیکنید .

در پاسخ به

ccc ccc
ccc ccc
سلام. در آخرین خط برنامه (یعنی در خطی که بعد از اون نمی‌خواین از اسکنر استفاده کنید) از این متد استفاده کنید.

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام و خسته نباشید خدمت شما و تشکر از سایت خوب و همینطور آموزشهای عالی. من دقیقا همین مراحل رو طی کردم و دقیقا همین کد رو وارد کردم ولی وارنینگ میده که Resource leak : myScanner never closed.
ممنون میشم راهنماییم کنید.
ccc ccc
ccc ccc
سلام. آبجکت اسکنر و با استفاده از متد ()close ببندید.

در پاسخ به

mehran
mehran
این تمرین عمل نمیکند. هیچ اتفاقی نمیافتد.در بخش کنسول نشانگر نمیآید.
محمد صالح
محمد صالح
ابتدا خودتون با ماوس در کنسول کلیک کنید سپس ورودی خود را وارد نمایید

در پاسخ به

javad
javad
باسلام،بسیار زیبا و لذت بخش،
ممنونم بابت همه چیز
mohammad m
mohammad m
منظور از سورس کد و بایت کد چیه؟
با تشکر
ccc ccc
ccc ccc
سلام. سورس کد منظور کدی است که در فایل java. نوشته میشه. و بایت کد هم وقتی فایل java. رو کامپایل می‌کنید تولید میشه که پسوند بایت کد class. است.

در پاسخ به

mohammad m
mohammad m
kheyli mamnon

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام.یه سوال داشتم.چطور میشه با استفاده از متدclose آبجکت ایجاد شده از روی کلاس اسکنر رو بست؟کدش چه شکلی میشه؟
ccc ccc
ccc ccc
input.close();

در پاسخ به

کاربر میهمان
کاربر میهمان
با عرض سلام و تشکر به خاطر زحمات یک سوال داشتم که چرا کلاس String ایمپرت نمیکنیم اما Scanner باید ایمپورت شه و همچنین چرا پس از new در کد دوباره Scanner نوشتین؟!
ccc ccc
ccc ccc
سلام
در جاوا پکیجی هست به نام java.lang که به طور ضمنی توسط کامپایلر در همه کلاس های جاوا import میشه. بنابراین زمان استفاده از این کلاس ها مثل String, System, Math و ... که در این بسته قرار دارند، دیگه نیازی به ایمپورت اونها نیست.
در مورد کلمه کلیدی new موقعی استفاده میشه که ما می خوایم از روی کلاسی یک آبجکتی و ایجاد کنیم.

در پاسخ به

کاربر میهمان
کاربر میهمان
با معذرت API چیست؟
ادمین سایت
ادمین سایت
با سلام
لطفا به لینک زیر مراجعه نمایید:
http://goo.gl/gAZPRA

با تشکر
ارادتمند
تیم سکان آکادمی

در پاسخ به

crow13
crow13
سلام . فایل تمرینی رو دانلود کردم ولی بلد نیستم بازش کنم . میشه کمکم کنین ؟
کاربر میهمان
کاربر میهمان
سلام.. شما گفتید که " با استفاده از متد close(); آبجکت ایجاد شده از روی کلاس اسکنر را ببندید. " .. میشه لطفا بیشتر توضیح بدید من همیشه این مشکل رو دارم
کاربر میهمان
کاربر میهمان
سلام من میخواهم با cmd برنامه رو کامپایل کنم ولی این ارور ها رو میده:
Scanner.java:1: error: Scanner is already defined in this compilation unit
import java.util.Scanner;
^
Scanner.java:4: error: reference to Scanner is ambiguous
Scanner myScanner = new Scanner(System.in);
^
both class java.util.Scanner in java.util and class Scanner in unnamed package match
Scanner.java:4: error: reference to Scanner is ambiguous
Scanner myScanner = new Scanner(System.in);
^
both class java.util.Scanner in java.util and class Scanner in unnamed package match
3 errors
سید مصطفی
سید مصطفی
این من هم همین مشکل رو داره اصلا با دستور اسکنر مشکل داره کسی هست راهنمایی کنه

در پاسخ به

محمد کشاورز
محمد کشاورز
با سلام وتشکر. در فرمان شرطی if من میخواهم دو رشته string را مقایسه کنم. if(a=b) رشته a را خودم وارد برنامه کردم. ورشته b را با scanner وارد برنامه میکنیم.با فرمان scanner همان محتویات رشته a را وارد میکنم تا جاب if درست شود اما اینطور نمیشود. چرا جواب if غلط میشود? اما اگر هر دو رشته a و b را داخل برنامه وارد کنیم در صورتی که برابر باشند فرمان if درست می شود.
محمد صالح
محمد صالح
با سلام و احترام
جهت مقایسه رشته ها بایستی از متد equals استفاده نمایید.
ملاحظه بفرمایید
http://stackoverflow.com/questions/38561983/why-my-program-doesnt-work-properly

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام.. ارور میده. ازش عکس گرفتم لطفا بفرمایید مشکل از کجاست..؟؟
http://uupload.ir/files/x03j_error.png
ccc ccc
ccc ccc
سلام
با استفاده از متد close(); آبجکت ایجاد شده از روی کلاس اسکنر را ببندید.

در پاسخ به

کاربر میهمان
کاربر میهمان
import java.util.Scanner;


public class One {

public static void main(String[] args) {

Scanner name=new Scanner(System.in);

System.out.println(name.nextLine());

}

}
ccc ccc
ccc ccc
دوست عزیز برنامه شما از ریشه غلطه. داخل استریم خروجی، می خوای ورودی بگیری. شما اول ورودی و با اسکنر بگیر بعد چاپ کن.

در پاسخ به

mobiniqow
mobiniqow
ولی این که مثال هستش!!! من نوشتم اجرا شده

در پاسخ به

کاربر میهمان
کاربر میهمان
برنامه این error رو میده و اجرا نمیشه

Multiple markers at this line
- Line breakpoint:Project [line: 11] -
main(String[])
؟؟؟؟؟
ccc ccc
ccc ccc
لطفا یه عکسی از کدتون قرار بدین.

در پاسخ به

محمد عقبائی فرهنگ
محمد عقبائی فرهنگ
چرا در ایجاد شی string از کلمه کلیدی new استفاده نکردیم؟ ولی برای ایجاد شی scanner از کلمه کلیدی new استفاده کردیم؟
ccc ccc
ccc ccc
سلام
اگر ما بخوایم یه آبجکتی و ایجاد کنیم، از کلمه کلیدی new استفاده می کنیم. در غیر این صورت اون آبجکت فقط تعریف شده، ایجاد نشده.

در پاسخ به

محمد عقبائی فرهنگ
محمد عقبائی فرهنگ
یعنی اون object از قبل تعریف شده بوده؟ برا همین new ننوشتیم؟

در پاسخ به

ccc ccc
ccc ccc
نه. وقتی می نویسیم: String name; یه آبجکتی و تعریف می کنیم. اگر هم جلوش مساوی و بعد هم از new استفاده کنیم، اون آبجکت ایجاد میشه.

در پاسخ به

محمد
محمد
JVM چیست؟
ادمین سایت
ادمین سایت
مخفف Java Virtual Machine یا ماشین مجازی جاوا است. وظیفه ی این ماشین تبدیل سورس کد جاوا به بایت کد است.

در پاسخ به