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