شمار حرف در Java
plant.length() حرفهایی را میشمارد که plant از قبل نگه داشته است. String plant = "leaf"; هنوز leaf را نگه میدارد، و System.out.println(plant.length()) عدد 4 را مینویسد. حرفها leaf میمانند. به آن عدد تبدیل نمیشوند. نقطهٔ بعد از نام خودِ پرسش است، و خط نویسنده جواب را نشان میدهد.
نقطه میپرسد چند حرف است
Mint.java را باز کنید. نام فایل Mint.java میماند، چون public class Mint هنوز نام فایل است. این صفحه نام فایل را عوض نمیکند و public class Mint را هم عوض نمیکند. صفحهٔ قبل String plant = "leaf"; را نگه میداشت و یک خط نویسنده که leaf را نشان میداد. این صفحه همان خط نگهداری را نگه میدارد. اگر از صفحهٔ پیش از گیومهها خط int هنوز مانده، پاکش کنید. هر خط import، هر خط reader، و هر خط nextLine را هم پاک کنید. فایلی که نگه میدارید import ندارد، Scanner ندارد، و nextLine ندارد. یک import که در فایل مانده و به کار نرفته، بهتنهایی باعث نمیشود javac خطا بدهد، و شمار را هم نمینویسد. شمار را فقط خط نویسندهای مینویسد که پرسش را میپرسد.
درون main، خط نگهداری هنوز String plant = "leaf"; است. String کلمهٔ جور است. plant نام است و با p کوچک شروع میشود. گیومهها l و e و a و f را نگه میدارند، همه کوچک، و میانشان چیز دیگری نیست. آن خط حرفها را نگه میدارد. پرسش نمیپرسد و صفحه را هم نمینویسد. پرسش کار بعدی است، بعد از آنکه حرفها نگه داشته شدند. بعد از نام یک نقطه بنویسید، بعد کلمهٔ پرسش length، بعد یک جفت پرانتز که میانشان چیزی نیست. همهٔ پرسش plant.length() است. نقطه پرسش را به نام میبندد. length کلمهٔ پرسش برای «چند تا» است. پرانتز خالی یعنی این پرسش کلمهٔ اضافهای در میان پرانتز لازم ندارد. اینجا شمارهٔ جا نیست. در فایلی که نگه میدارید این پرسش داخل خط نویسندهٔ دوم نشسته است. خودش یک خط جدا نیست. پرسیدن همان نگه داشتن نیست. حرفهای داخل نام leaf میمانند. پرسش گیومهها را پاک نمیکند و عدد 4 را هم داخل نام plant نمیگذارد.
فایلی که نگه میدارید اول حرفها را مینویسد، بعد پرسش را میپرسد. خط نویسندهٔ اول نام لخت است: System.out.println(plant);. بدون گیومه و بدون نقطه. leaf را مینویسد و خط را تمام میکند، همانطور که صفحهٔ قبل میکرد. خط نویسندهٔ دوم خود پرسش است: System.out.println(plant.length());. دور length گیومه نیست. Java نام plant را میخواند، حرفهایی را که آن نام نگه داشته میشمارد، آن شمار را مینویسد، و خط را تمام میکند. برای فایلی که نگه میدارید آن شمار 4 است. علامت گیومه روی صفحه نیست. کلمهٔ length روی صفحه نیست. پرانتزها روی صفحه نیستند. حرفهای خود نام، یعنی p و l و a و n و t، روی صفحه نیستند. فایل را ذخیره کنید.
فایلی که نگه میدارید
این را با نام Mint.java ذخیره کنید. این همان فایلی است که این صفحه نگه میدارد. یک خط نگهداری، String plant = "leaf";. یک خط نویسنده برای حرفها. یک خط نویسنده برای شمار. خط شمار، plant.length() داخل println است. چیز دیگری نیست.
public class Mint {
public static void main(String[] args) {
String plant = "leaf";
System.out.println(plant);
System.out.println(plant.length());
}
}
فایل را از بالا بخوانید. public class Mint نام فایل را مشخص میکند. صفحه را نمینویسد. public static void main(String[] args) جایی است که Java شروع میکند. کلمهٔ String روی همان خط main هنوز خط نگهداری نیست. خط نگهداری خط بعدی است: String plant = "leaf";. چهار حرف را نگه میدارد. چیزی نمینویسد. System.out.println(plant); حرف leaf را مینویسد و خط را تمام میکند. System.out.println(plant.length()); عدد 4 را مینویسد و خط را تمام میکند. روی صفحه دو خط است. خط اول حرفهاست. خط دوم شمار است. گیومهها در فایل میمانند، دور leaf، و روی هیچکدام از دو خط صفحه نیستند.
آنچه صفحه نشان میدهد
در پوشهای که این Mint.java در آن است، javac Mint.java را بنویسید. وقتی فایل درست باشد، این فرمان هیچ خطی نمینویسد. یک پرسش بعد از نقطه بهخودیخود باعث نمیشود javac خطی بنویسد، و باعث نمیشود javac خطا بدهد. بعد java Mint را بنویسید. بعد از java پسوند .java را ننویسید. همین دو فرمان را در Windows و در macOS مینویسید. این صفحه آن علامتی را که پوسته پیش از فرمان نشان میدهد نقل نمیکند. برنامه leaf را مینویسد، و در خط بعد 4 را. منتظر نمیماند که چیزی تایپ کنید. حرفها از قبل داخل فایل بودند، و شمار از همان حرفها جواب داده میشود. اگر java Mint منتظر ماند، هنوز nextLine داخل فایل است. آن خط را پاک کنید و خط نگهداری و دو خط نویسنده را نگه دارید. برنامه بعد از خط نویسندهٔ دوم تمام میشود.
صفحه leaf را نشان میدهد، بعد 4 را. چهار حرف کوچک، بعد شمار، و روی هیچکدام از دو خط علامت گیومه نیست. اگر صفحه plant را نشان دهد، یک خط نویسنده دور نام گیومه دارد: System.out.println("plant");. آن گیومهها حرفهای p و l و a و n و t را مشخص میکنند، پس leafِ نگه داشته نوشته نمیشود و پرسش هم پرسیده نمیشود. اگر صفحه فقط leaf را نشان دهد، خط نویسندهٔ دوم نیست. فایلی که نگه میدارید هر دو خط را دارد، اول حرفها و دوم شمار. اگر صفحه فقط 4 را نشان دهد، خط نویسندهٔ اول نیست. حرفها ممکن است هنوز در فایل باشند، اما اثبات این صفحه خود صفحه است: leaf و بعد 4. اگر صفحه اول 4 را نشان دهد و بعد leaf را، دو خط نویسنده جابهجا شدهاند. println(plant) را بالای println(plant.length()) بگذارید. اگر صفحه 5 را نشان دهد، شمار برای این حرفها غلط است. گیومهها حرفهایی نیستند که نام نگه میدارد، پس جزو آن 4 نیستند. حرف پنجم باید میان گیومهها نشسته باشد. فایلی که نگه میدارید فقط l و e و a و f دارد. اگر صفحه mint را نشان دهد، هنوز روی فایل قدیمیتری هستید. اگر صفحه leaf را نشان دهد و بعد دوباره leaf را، خط نویسندهٔ دوم یک println(plant) دیگر است، نه پرسش. برای صفحهای که خط غلط نشان میدهد Java را دوباره نصب نمیکنید.
حرف بزرگ میان گیومهها هم مثل حرف کوچک یکی شمرده میشود. String plant = "Leaf"; باز هم باعث میشود plant.length() عدد 4 را بنویسد. خط نویسندهٔ حرفها Leaf را نشان میدهد، با L بزرگ. فایلی که نگه میدارید از این استفاده نمیکند. چهار حرف کوچک دارد، و خط شمار 4 را مینویسد. شمار را با حرفهایی بسنجید که واقعاً میان گیومهها نشستهاند.
میتوانید شمار را زیر یک نام دوم نگه دارید. int count = plant.length(); جواب را میگیرد، و کلمهٔ جور int است، چون جواب عدد صحیح است. بعد System.out.println(count); عدد 4 را مینویسد. این مجاز است. فایلی که نگه میدارید این نیست. فایل نگه داشته پرسش را مستقیم مینویسد، پس صفحه leaf است و بعد 4، و برای دیدن شمار به نام دوم نیاز ندارید. عدد 4 جواب است. جای حرفهای داخل plant را نمیگیرد.
فاصله هم یکی شمرده میشود
حرفهای میان گیومه میتوانند عوض شوند، و شمار دنبال همان حرفها میرود. زیر پرسش اول، مجموعهٔ تازهای از حرفها را در همان نام نگه دارید، بعد پرسش را دوباره بپرسید. خط نگهداری تازه plant = "leaf stem"; است. با String شروع نمیشود. plant از قبل هست، پس این خط فقط حرفهایی را عوض میکند که نام نگه داشته است. میان گیومهها ۹ جا هست: l، e، a، f، یک فاصله، s، t، e، m. فاصله یکی از آنهاست. length آن را میشمارد. دو کلمه هنوز یک مقدار نگه داشتهاند، نه دو نام. این فایل دوم حرفها را نمینویسد. فقط دو شمار را مینویسد، تا صفحه با خود حرفها قاطی نشود.
این فایل دوم است. فایلی که نگه میدارید نیست. فایلی که نگه میدارید یک خط نگهداری دارد، حرفهای leaf، بدون فاصله، و صفحهاش leaf است و بعد 4. وقتی میخواهید شمرده شدن فاصله را ببینید، این فایل دوم را با نام Mint.java ذخیره کنید، بعد فایل نگه داشته را برگردانید.
public class Mint {
public static void main(String[] args) {
String plant = "leaf";
System.out.println(plant.length());
plant = "leaf stem";
System.out.println(plant.length());
}
}
javac Mint.java را بنویسید. فایل درست است، پس javac هیچ خطی نمینویسد. خط نگهداری دوم مجاز است String را ننویسد، و این ننوشتن باعث نمیشود javac خطا بدهد. بعد java Mint را بنویسید. صفحه 4 را نشان میدهد، و خط بعد 9 است. دو خط. بدون علامت گیومه. حرفهای leaf روی صفحه نیستند. حرفهای leaf stem هم روی صفحه نیستند. فقط شمارها آنجاست. شمار اول از حرفهایی است که نام در آن لحظه نگه داشته بود. شمار دوم از حرفهایی است که نام بعد از plant = "leaf stem"; نگه میدارد. اگر خط دوم 8 باشد، فاصله میان گیومهها نیست و حرفهای نگه داشته leafstem هستند. اگر هر دو خط 4 باشند، خط نگهداری دوم نیست یا هنوز "leaf" میگوید. اگر هر دو خط 9 باشند، خط نگهداری اول از قبل "leaf stem" میگوید. صفحه ترتیب خطهای فایل را دنبال میکند، و حرفهای میان گیومه را هم، فاصله را هم.
برای همان نام، String را بار دوم ننویسید. String plant = "leaf stem"; اگر زیر خطی باشد که plant را قبلاً ساخته، خطای دیگری است. آن خط میخواهد plant را دوباره بسازد. javac یک خطا مینویسد و ساکت نمیماند. واژههای دقیق آن خطا را لازم ندارید. هنوز java Mint را ننویسید. String دوم را پاک کنید و plant = "leaf stem"; را بگذارید. نام یک بار ساخته میشود. خطهای بعدی فقط حرفهایی را که نگه داشته عوض میکنند، یا دربارهٔ همان حرفها پرسش میپرسند. در فایلی که نگه میدارید خط نگهداری دوم نیست. بعد از آنکه 4 و بعد 9 را دیدید، آن فایل را برگردانید: String plant = "leaf"; و println(plant) و println(plant.length()).
کدام حرف در کدام جا
length میپرسد چند تا. پرسش دیگری میپرسد کدام حرف در یک جا نشسته است. کلمهٔ پرسش charAt است. جا داخل پرانتز میرود، چون این پرسش به آن کلمهٔ اضافه نیاز دارد. جای اول 0 است، نه 1. برای leaf، جای 0 حرف l را دارد، جای 1 حرف e را، جای 2 حرف a را، و جای 3 حرف f را. plant.charAt(0) با حرف تکی l جواب میدهد. plant.charAt(1) با حرف تکی e جواب میدهد. جواب یک حرف است، نه همهٔ کلمهٔ leaf، و نه خود شمارهٔ جا. حرفهای نگه داشته در plant همان leaf میمانند. پرسیدن یک جا، جاهای دیگر را پاک نمیکند.
این فایل سوم است. فایلی که نگه میدارید نیست. فایلی که نگه میدارید length میپرسد، و صفحهاش leaf است و بعد 4. وقتی میخواهید جاها را ببینید، این فایل سوم را با نام Mint.java ذخیره کنید، بعد فایل نگه داشته را برگردانید.
public class Mint {
public static void main(String[] args) {
String plant = "leaf";
System.out.println(plant.charAt(0));
System.out.println(plant.charAt(1));
}
}
javac Mint.java را بنویسید. فایل درست است، پس javac هیچ خطی نمینویسد. یک شمارهٔ جا داخل پرانتز، وقتی آن جا یکی از حرفها باشد، باعث نمیشود javac خطا بدهد. بعد java Mint را بنویسید. صفحه l را نشان میدهد، و خط بعد e است. دو خط. بدون علامت گیومه. کلمهٔ leaf روی صفحه نیست. عددهای 0 و 1 روی صفحه نیستند. اگر خط اول e باشد، پرسش اول جای 1 را خواسته، که حرف دوم است. حرف اول جای 0 است. اگر خط اول leaf باشد، خط نویسنده println(plant) است، نه charAt. اگر خط اول 0 باشد، خط نویسنده شمارهٔ جا را نوشته و charAt نپرسیده است. اگر هر دو خط l باشند، هر دو پرسش charAt(0) میگویند. جای 2 حرف a را مینویسد. جای 3 حرف f را مینویسد. آن دو جا برای leaf واقعیاند. این فایل سوم آنها را نمیپرسد. 0 را میپرسد و بعد 1 را، تا ببینید شمردن از 0 شروع میشود.
جایی که حرفی آنجا نیست
جای 4 یکی از حرفهای leaf نیست. شمار 4 است، و جاهایی که هستند 0 و 1 و 2 و 3 اند. پرسش اول را به plant.charAt(4) عوض کنید و بقیهٔ فایل سوم را بگذارید بماند. javac Mint.java را بنویسید. javac هیچ خطی نمینویسد. خط یک پرسش مجاز است، پس نبودن یک حرف خطای javac نیست. بعد java Mint را بنویسید. برنامه یک خطا مینویسد. حرف پنجمی نمینویسد، و 4 را هم نمینویسد. واژههای دقیق آن خطا را لازم ندارید. واقعیت مفید این است که خطا هنگام اجرای برنامه نوشته میشود، نه وقتی javac فایل را میخواند. اگر هنوز آن دو خط را میخواهید، charAt(0) و charAt(1) را برگردانید، و وقتی تمام شد فایل نگه داشته را برگردانید. charAt(4) را در فایلی که نگه میدارید نگذارید.
یک جفت خالی شمار 0 دارد. String plant = ""; هیچ حرفی نگه نمیدارد. System.out.println(plant.length()); عدد 0 را مینویسد. javac هیچ خطی نمینویسد، چون جفت خالی مجاز است. java Mint عدد 0 را مینویسد و تمام میشود. منتظر نمیماند. خط خالی همان چیزی بود که println(plant) در صفحهٔ قبل مینوشت. پرسش فرق دارد: صفحه رقم 0 را نشان میدهد، که شمار است، نه یک خط خالی. plant.charAt(0) روی همان جفت خالی جایی است که حرفی آنجا نیست. javac باز هم هیچ خطی نمینویسد. java Mint خطا مینویسد، چون جای 0 به یک حرف نیاز دارد و شمار 0 است. بعد از آنکه 0 را دیدید، خط نگهداری را دوباره String plant = "leaf"; کنید.
پرانتز جزو پرسش است. System.out.println(plant.length); نقطه و کلمهٔ length را دارد، و پرانتز ندارد. javac خطا مینویسد. ساکت نمیماند. صفحهای برای خواندن نیست، چون وقتی javac خطا مینویسد java Mint را نمینویسید. واژههای دقیق را لازم ندارید. جفت پرانتز خالی را برگردانید تا خط System.out.println(plant.length()); شود. charAt نمیتواند خالی باشد. System.out.println(plant.charAt()); در javac خطا مینویسد، چون آن پرسش به جا نیاز دارد. وقتی روی فایل سوم هستید، یک جای موجود را داخل پرانتز بگذارید، مثلاً 0. فایلی که نگه میدارید از length() استفاده میکند، و میان پرانتزها چیزی نیست.
پرسش را بعد از نام مینویسید. System.out.println(length()); با length مثل نامی رفتار میکند که این فایل ندارد. javac خطا مینویسد. کلمهٔ پرسش بعد از plant و یک نقطه جا دارد. System.out.println(plantlength()); هم یک نام است، plantlength، که این فایل ندارد. نقطه همان چیزی است که نام را از پرسش جدا میکند. نام هنوز باید پیش از خطی که از آن استفاده میکند وجود داشته باشد. اگر System.out.println(plant.length()); بالای String plant = "leaf"; نوشته شود، javac خطا مینویسد. پرسش نام plant را پیش از آنکه plant وجود داشته باشد میبرد. خط نگهداری را بالای خطهای نویسنده بگذارید. این همان ترتیبی است که برای count و برای reader قبلاً استفاده کردهاید.
پرسش برای حرفهاست، نه برای عدد صحیحی که با int نگه داشتهاید. int count = 4; و System.out.println(count.length()); از یک عدد صحیح میپرسد چند حرف نگه داشته است. javac خطا مینویسد. عدد صحیح پرسش length ندارد. تعمیر این صفحه فقط اضافه کردن پرانتز نیست. تعمیر این است که پرسش را از نامی بپرسید که حرف نگه میدارد: plant.length(). صفحهٔ پیش از گیومهها int را نگه میداشت و 4 را، بدون پرسش. صفحهٔ قبل String را نگه میداشت و "leaf" را. این صفحه String را نگه میدارد، "leaf" را نگه میدارد، و length میپرسد.
حالا میتوانید بپرسید نامی که از قبل حرف نگه داشته چند حرف دارد، و کدام حرف در جایی نشسته که از 0 شروع میشود. String plant = "leaf"; هنوز leaf را نگه میدارد. System.out.println(plant); حرف leaf را مینویسد. System.out.println(plant.length()); عدد 4 را مینویسد، و حرفها leaf میمانند. یک plant = "leaf stem"; بعدی شمار بعد را 9 میکند، چون فاصله یکی شمرده میشود. plant.charAt(0) حرف l را مینویسد، و plant.charAt(1) حرف e را. جایی که حرفی آنجا نیست، مثل 4 برای leaf، میگذارد javac ساکت بماند و باعث میشود java Mint خطا بنویسد. length بدون پرانتز باعث میشود javac خطا بنویسد. صفحهٔ بعد این پرسشها را کنار میگذارد. پیش یک عدد صحیح میماند، مثل همان 4 که این شمار نوشت، و آن عدد را دوباره خودتان در فایل مینویسید.
صفحه جواب را نشان میدهد و حرفها میمانند
فایلی که نگه میدارید leaf را مینویسد و بعد 4 را. نام روی خط نویسندهٔ اول plant است، و plant روی صفحه نیست. length در فایل است، بعد از نقطه، و روی صفحه نیست. گیومهها دور leaf میمانند. شمرده نمیشوند، و روی صفحه نیستند. فاصلهٔ میان گیومهها شمرده میشود. جای اول 0 است.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود