लोड हो रहा है...

Java में टाइप की हुई पंक्ति

आप चाहते हैं कि स्क्रीन वह शब्द दिखाए जो आप प्रोग्राम शुरू होने के बाद टाइप करते हैं, वह शब्द जो फ़ाइल में लिखा नहीं है। पिछले पन्ने पर शब्द रखने वाली पंक्ति पर उद्धरण चिह्नों के बीच था, इसलिए दूसरी स्क्रीन का मतलब Mint.java बदलना था। इस पन्ने पर फ़ाइल में leaf है ही नहीं। यह एक नाम बनाती है, plant, और फिर इंतज़ार करती है। आप leaf टाइप करते हैं और Enter दबाते हैं। लिखने वाली पंक्ति खुले नाम का उपयोग करती है, और प्रोग्राम leaf लिखता है। आप Java फिर से स्थापित नहीं कर रहे। आप कोई टिप्पणी नहीं जोड़ रहे, और पंक्ति खत्म करने का दूसरा तरीका भी नहीं सीख रहे। आप जानते हैं कि एक नाम अक्षर रख सकता है और println वे अक्षर लिखता है। नया काम उस नाम को उस पंक्ति से भरना है जिसे आप टाइप करते हैं।

फ़ाइल एक टाइप की हुई पंक्ति का इंतज़ार करती है

Mint.java खोलें। फ़ाइल का नाम Mint.java ही रहता है, क्योंकि public class Mint अभी भी फ़ाइल का नाम है। यह पन्ना फ़ाइल का नाम नहीं बदलता और public class Mint भी नहीं बदलता। फ़ाइल की पहली पंक्ति, public class Mint के ऊपर, यह है: import java.util.Scanner;। यह पंक्ति फ़ाइल को Scanner उपयोग करने देती है। यह लिखने वाली पंक्ति नहीं है। Scanner स्क्रीन का अक्षर नहीं है। अर्धविराम import वाली पंक्ति को खत्म करता है। उसके नीचे एक खाली पंक्ति छोड़ें, फिर वही public class Mint जो आपके पास पहले से है। इस फ़ाइल में अभी भी package वाली पंक्ति नहीं है। import पहली पंक्ति है, main के अंदर की पंक्ति नहीं।

main के अंदर पहली नई पंक्ति पढ़ने का साधन बनाती है: Scanner reader = new Scanner(System.in);। Scanner बताता है कि reader किस तरह की चीज़ है। reader नाम है, और यह छोटे r से शुरू होता है। चिह्न = उस साधन को इस नाम में रखता है। new Scanner(System.in) साधन बनाता है और उसे System.in से जोड़ता है। System.in वह जगह है जहाँ से टाइप किए अक्षर पढ़े जाते हैं। System.out, जिसे आप लिखने वाली पंक्ति पर पहले से उपयोग करते हैं, स्क्रीन है। ये दोनों एक नहीं हैं। अर्धविराम इस पंक्ति को खत्म करता है। यह पंक्ति स्क्रीन नहीं लिखती, और आपके टाइप करने का इंतज़ार भी नहीं करती। यह केवल reader बनाती है।

अगली पंक्ति वह नाम भरती है जिसे आप पिछले पन्ने से जानते हैं: String plant = reader.nextLine();। String अभी भी कहता है कि यह नाम अक्षर रखता है। plant अभी भी छोटे p से शुरू होता है। चिह्न = अभी भी उस नाम में अक्षर रखता है। नया हिस्सा दाईं ओर है। reader.nextLine() में उद्धरण चिह्न नहीं हैं। इस पंक्ति पर leaf नहीं है। यह पंक्ति reader से एक टाइप की हुई पंक्ति माँगती है। प्रोग्राम वहीं इंतज़ार करता है जब तक आप Enter नहीं दबाते। जब आप Enter दबाते हैं, nextLine वे अक्षर रखता है जो आपने उस Enter से पहले टाइप किए। वह Enter कुंजी खुद नहीं रखता। फिर पंक्ति अर्धविराम पर खत्म होती है। रखना अभी भी लिखना नहीं है। प्रोग्राम ने अभी अपनी पंक्ति नहीं लिखी।

लिखने वाली पंक्ति खुला नाम ही रहती है, उसी रूप में जैसी पिछले पन्ने की रखी फ़ाइल में थी: System.out.println(plant);। बिना उद्धरण चिह्न के। Java नाम plant पढ़ती है, वे अक्षर लिखती है जिन्हें वह नाम रखे हुए है, और पंक्ति खत्म करती है। वे अक्षर वही हैं जिन्हें nextLine ने अभी रखा। अगर आपने leaf टाइप किया, प्रोग्राम leaf लिखता है। अगर आपने stem टाइप किया, प्रोग्राम stem लिखता है। इन दो बार चलाने के बीच फ़ाइल नहीं बदली। फ़ाइल सहेजें।

वह फ़ाइल जिसे आप रखते हैं

इसे Mint.java के नाम से सहेजें। यही वह फ़ाइल है जिसे यह पन्ना रखता है। जो शब्द आप टाइप करेंगे वह फ़ाइल में नहीं है। फ़ाइल में अक्षर l, e, a और f ढूँढें। वे वहाँ नहीं हैं। पढ़ने के साधन का नाम reader है। रखी हुई पंक्ति का नाम plant है। लिखने वाली पंक्ति plant का उपयोग करती है और उसमें उद्धरण चिह्न नहीं हैं।

वह फ़ाइल जिसे आप रखते हैं

java
import java.util.Scanner;

public class Mint {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        String plant = reader.nextLine();
        System.out.println(plant);
    }
}

फ़ाइल को ऊपर से पढ़ें और तय करें कि स्क्रीन तक क्या पहुँच सकता है। import java.util.Scanner; केवल फ़ाइल को Scanner उपयोग करने देता है। public class Mint फ़ाइल का नाम रखती है। public static void main(String[] args) वह जगह है जहाँ Java शुरू होती है। उन शब्दों में से कोई भी स्क्रीन का अक्षर नहीं है। main वाली पंक्ति का String वह String नहीं है जो plant बनाता है। Scanner reader = new Scanner(System.in); साधन reader बनाता है। वह कुछ नहीं लिखता। String plant = reader.nextLine(); एक टाइप की हुई पंक्ति को plant में रखता है। वह अपने आप कुछ नहीं लिखता। System.out.println(plant); अकेली लिखने वाली पंक्ति है। वह रखे अक्षर लिखती है और पंक्ति खत्म करती है। नाम plant नहीं लिखा जाता। नाम reader नहीं लिखा जाता। System नहीं लिखा जाता। अर्धविराम नहीं लिखा जाता।

आप क्या टाइप करते हैं और प्रोग्राम क्या लिखता है

जिस फ़ोल्डर में यह Mint.java है, वहाँ javac Mint.java लिखें। जब फ़ाइल सही हो, यह आदेश कोई पंक्ति नहीं लिखता। import वाली पंक्ति और reader होने से javac कोई पंक्ति नहीं लिखता, और असफल भी नहीं होता। फिर java Mint लिखें। java के बाद .java न लिखें। यही दो आदेश आप Windows पर और macOS पर लिखते हैं। यह पन्ना उस चिह्न को नहीं उद्धृत करता जो शेल आदेश से पहले दिखाता है। वे चिह्न अलग होते हैं, और वे प्रोग्राम की पंक्ति नहीं हैं।

java Mint के बाद प्रोग्राम reader.nextLine() पर इंतज़ार करता है। वह खत्म नहीं हुआ, और उसने leaf नहीं लिखा, क्योंकि आपने उसे अभी पंक्ति नहीं दी। कर्सर एक नई पंक्ति पर बैठा है। अक्षर l, e, a और f टाइप करें। टर्मिनल वे अक्षर दिखाता है जैसे ही आप कुंजी दबाते हैं। यह दिखाना टर्मिनल का आपकी कुंजियाँ दोहराना है। यह System.out.println नहीं है। फिर Enter दबाएँ।

Enter इंतज़ार खत्म करता है। nextLine शब्द leaf को plant में रखता है और Enter नहीं रखता। फिर println leaf लिखता है और पंक्ति खत्म करता है। आप leaf देखते हैं, और उसके नीचे फिर leaf। पहला leaf वे कुंजियाँ हैं जिन्हें टर्मिनल ने दिखाया। दूसरा leaf प्रोग्राम है। प्रोग्राम की पंक्ति में उद्धरण चिह्न नहीं हैं। चार अक्षर, फिर पंक्ति खत्म होती है। प्रोग्राम उस लिखने वाली पंक्ति के बाद खत्म होता है। अगर आप केवल प्रोग्राम की पंक्ति देखना चाहते हैं, वह पंक्ति देखें जो Enter दबाने के बाद दिखाई देती है।

अगर प्रोग्राम की पंक्ति plant है, तो लिखने वाली पंक्ति में plant के चारों ओर उद्धरण चिह्न हैं। जिस फ़ाइल को आप रखते हैं उसमें वे नहीं हैं। अगर प्रोग्राम की पंक्ति mint है, तो लिखने वाली पंक्ति अभी भी System.out.println("mint"); है, या फ़ाइल अभी भी पहले पन्ने का उद्धरण चिह्नों वाला शब्द रखे हुए है। अगर java Mint बिना इंतज़ार किए तुरंत leaf लिख दे, तो फ़ाइल अभी भी उद्धरण चिह्नों में एक शब्द रखती है, जैसे String plant = "leaf";, और nextLine का उपयोग नहीं करती। leaf के चारों ओर उद्धरण चिह्न ढूँढें। जिस फ़ाइल को आप रखते हैं उसमें वे नहीं हैं। गलत शब्द दिखने पर Java फिर से स्थापित न करें।

बड़े अक्षर वैसे ही लिखे जाते हैं जैसे आप टाइप करते हैं। अगर आप बड़े L के साथ Leaf टाइप करें और Enter दबाएँ, प्रोग्राम की पंक्ति Leaf है। फ़ाइल में वे अक्षर अभी भी नहीं हैं। खाली Enter भी एक असली पंक्ति है। बिना अक्षर टाइप किए Enter दबाएँ। nextLine plant में कोई अक्षर नहीं रखता। println ऐसी पंक्ति लिखता है जिसमें अक्षर नहीं हैं। प्रोग्राम चला। इंतज़ार खत्म हुआ क्योंकि आपने Enter दबाया। जिस फ़ाइल को आप रखते हैं उसे leaf से आज़माते हैं, चार छोटे अक्षर।

जगह उसी पंक्ति में रहती है

nextLine Enter तक पढ़ता है, जगह तक नहीं। leaf टाइप करें, फिर एक जगह, फिर stem, फिर Enter। plant में रखे अक्षर हैं leaf, एक जगह, और stem। System.out.println(plant) leaf stem लिखता है। जगह एक रखा हुआ अक्षर है, जैसे पिछले पन्ने पर उद्धरण चिह्नों के अंदर की जगह भी रखी जाती थी। यह पन्ना पंक्ति को जगह पर काटता नहीं। जिस फ़ाइल को आप रखते हैं वह अभी भी एक पंक्ति पढ़ती है। जब स्क्रीन पर जगह चाहिए, आप केवल टाइप की हुई चीज़ बदलते हैं, फ़ाइल नहीं।

दो टाइप की हुई पंक्तियाँ, दो Enter

एक reader दूसरी पंक्ति भी ले सकता है। पहली लिखने वाली पंक्ति के नीचे, उसी नाम में नई पंक्ति रखें, फिर नाम को फिर से लिखें। नई रखने वाली पंक्ति है plant = reader.nextLine();। यह String से शुरू नहीं होती। plant पहले से मौजूद है, इसलिए यह पंक्ति केवल वे अक्षर बदलती है जिन्हें नाम रखता है। अगली लिखने वाली पंक्ति फिर System.out.println(plant); है। प्रोग्राम अब दो बार इंतज़ार करता है। हर nextLine अपने Enter का इंतज़ार करता है।

यह दूसरी फ़ाइल है। यह वह फ़ाइल नहीं है जिसे आप रखते हैं। जिस फ़ाइल को आप रखते हैं वह एक बार इंतज़ार करती है और एक बार लिखती है। जब दो टाइप की हुई पंक्तियाँ देखनी हों, इस दूसरी फ़ाइल को Mint.java के नाम से सहेजें, फिर बाद में अकेला nextLine और अकेला println वापस रखें।

दो टाइप की हुई पंक्तियाँ

java
import java.util.Scanner;

public class Mint {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        String plant = reader.nextLine();
        System.out.println(plant);
        plant = reader.nextLine();
        System.out.println(plant);
    }
}

javac Mint.java लिखें। फ़ाइल सही है, इसलिए javac कोई पंक्ति नहीं लिखता। दूसरी रखने वाली पंक्ति में String न होना जायज़ है, और यह न होना javac को असफल नहीं करता। फिर java Mint लिखें। प्रोग्राम इंतज़ार करता है। leaf टाइप करें और Enter दबाएँ। टर्मिनल leaf दिखाता है, और प्रोग्राम उसके नीचे leaf लिखता है। प्रोग्राम फिर इंतज़ार करता है। वह खत्म नहीं हुआ। stem टाइप करें और Enter दबाएँ। टर्मिनल stem दिखाता है, और प्रोग्राम उसके नीचे stem लिखता है। प्रोग्राम की पंक्तियाँ leaf हैं, फिर stem। कुंजियों से टर्मिनल ने जो अक्षर दिखाए वे इन पंक्तियों में से हर एक के ऊपर बैठे हैं। अगर प्रोग्राम की दोनों पंक्तियाँ leaf कहती हैं, तो दूसरा nextLine नहीं चला, या आपने दोनों बार leaf टाइप किया। अगर प्रोग्राम दूसरी पंक्ति टाइप करने से पहले stem लिख दे, तो दूसरा println दूसरे nextLine के नीचे नहीं है। स्क्रीन फ़ाइल की पंक्तियों के क्रम का पालन करती है, और हर इंतज़ार उस nextLine के साथ है जिसे अभी Enter नहीं मिला।

उसी नाम के लिए String दूसरी बार न लिखें। String plant = reader.nextLine();, उस पंक्ति के नीचे जिसने plant पहले ही बना दिया है, एक और गलती है। वह पंक्ति plant को फिर से बनाने की कोशिश करती है। javac एक त्रुटि लिखता है और चुप नहीं रहता। उस त्रुटि के शब्द याद रखने की ज़रूरत नहीं। उपयोगी बात यह है कि javac ने एक पंक्ति लिखी, इसलिए अभी java Mint न लिखें। दूसरा String हटा दें और plant = reader.nextLine(); रहने दें। नाम एक बार बनता है। बाद की पंक्तियाँ केवल वे अक्षर बदलती हैं जिन्हें वह रखता है। जिस फ़ाइल को आप रखते हैं उसमें दूसरा nextLine है ही नहीं। leaf और फिर stem देखने के बाद एक पंक्ति वाली फ़ाइल वापस रखें।

import वाली पंक्ति public class के ऊपर है

जब तक import वाली पंक्ति न हो, फ़ाइल Scanner को नहीं जानती। अगर import java.util.Scanner; हटा दें और जिस फ़ाइल को आप रखते हैं उसका बाकी हिस्सा छोड़ दें, javac एक त्रुटि लिखता है। वह चुप नहीं रहता। पढ़ने के लिए कोई स्क्रीन नहीं है, क्योंकि javac के त्रुटि लिखते समय आप java Mint नहीं लिखते। त्रुटि के शब्द याद रखने की ज़रूरत नहीं। सुधार यह है कि import java.util.Scanner; को अर्धविराम के साथ पहली पंक्ति बनाकर public class Mint के ऊपर वापस रखें। सहेजें, javac Mint.java फिर से लिखें, और तब तक रुकें जब तक javac कोई पंक्ति न लिखे।

यह तीसरी फ़ाइल import के बिना है। यह वह फ़ाइल नहीं है जिसे आप रखते हैं। केवल तब तक सहेजें जब तक javac त्रुटि लिखे, फिर import वाली पंक्ति वापस रखें।

import वाली पंक्ति नहीं है

java
public class Mint {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        String plant = reader.nextLine();
        System.out.println(plant);
    }
}

import वाली पंक्ति तब भी असफल होती है जब आप उसे main के अंदर रखें, शुरुआती धनुकोष्ठक के नीचे, या जब उसे public class के नीचे रखें। Java import को public class के ऊपर पढ़ती है, main के अंदर एक कदम की तरह नहीं। उसे पहली पंक्ति पर वापस रखें। उस पंक्ति पर अर्धविराम का न होना उसी तरह की गलती है: javac एक त्रुटि लिखता है, और आप java Mint नहीं चलाते। जिस फ़ाइल को आप रखते हैं उसमें अर्धविराम है।

System.in ही वह अकेली जगह है जिससे यह पन्ना reader को जोड़ता है। Scanner reader = new Scanner(System.out); स्क्रीन पर पढ़ने का साधन माँगता है। System.out वह जगह है जहाँ println लिखता है। यह वह जगह नहीं है जहाँ से टाइप किए अक्षर पढ़े जाते हैं। javac एक त्रुटि लिखता है। वह चुप नहीं रहता। java Mint न लिखें। उसी एक पंक्ति पर System.out को System.in में बदलें। लिखने वाली पंक्ति System.out रखती है, क्योंकि लिखने वाली पंक्ति स्क्रीन है। reader वाली पंक्ति System.in रखती है, क्योंकि reader वाली पंक्ति कुंजीपटल है। दोनों को आपस में बदलना ही गलती है।

यह चौथी फ़ाइल साधन को स्क्रीन से जोड़ती है। यह वह फ़ाइल नहीं है जिसे आप रखते हैं। केवल तब तक सहेजें जब तक javac त्रुटि लिखे, फिर out को in में बदलें।

साधन स्क्रीन से जुड़ा है

java
public class Mint {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.out);
        String plant = reader.nextLine();
        System.out.println(plant);
    }
}

reader पहले मौजूद होना चाहिए

Java फ़ाइल को ऊपर से पढ़ती है। जो पंक्ति reader बनाती है, वह उस पंक्ति के ऊपर होनी चाहिए जो reader का उपयोग करती है। अगर पहले String plant = reader.nextLine(); हो और बाद में Scanner reader = new Scanner(System.in);, तो रखने वाली पंक्ति नाम reader का उपयोग reader के बनने से पहले करती है। javac एक त्रुटि लिखता है। वह चुप नहीं रहता। यह वही क्रम है जो पिछले पन्ने पर था, जब plant का उपयोग String plant से पहले हुआ था। सुधार यह है कि Scanner वाली पंक्ति को nextLine वाली पंक्ति के ऊपर ले जाएँ। कोई नाम उस पंक्ति से ऊपर की पंक्ति में उपयोग नहीं होता जो उसे बनाती है।

यह पाँचवीं फ़ाइल टूटे क्रम वाली है। यह वह फ़ाइल नहीं है जिसे आप रखते हैं। केवल तब तक सहेजें जब तक javac त्रुटि लिखे, फिर Scanner वाली पंक्ति को nextLine के ऊपर वापस रखें। जिस फ़ाइल को आप सच में चलाते हैं उसमें import वाली पंक्ति अभी भी ज़रूरी है। यह टूटी फ़ाइल import को रखती है ताकि नई गलती केवल क्रम हो।

reader बनने से पहले उपयोग

java
import java.util.Scanner;

public class Mint {
    public static void main(String[] args) {
        String plant = reader.nextLine();
        Scanner reader = new Scanner(System.in);
        System.out.println(plant);
    }
}

javac Mint.java लिखें। javac एक त्रुटि लिखता है। java Mint न लिखें। Scanner reader = new Scanner(System.in); को String plant = reader.nextLine(); के ऊपर ले जाएँ। सहेजें। javac Mint.java फिर से लिखें। अब javac कोई पंक्ति नहीं लिखता। फिर java Mint इंतज़ार करता है। leaf टाइप करें, Enter दबाएँ, और प्रोग्राम leaf लिखता है।

लिखने वाली पंक्ति पर उद्धरण चिह्न अभी भी पिछले पन्ने वाला अर्थ रखते हैं। एक असली nextLine के बाद, अगर लिखने वाली पंक्ति System.out.println("plant"); है, तो आप leaf टाइप कर सकते हैं और Enter दबा सकते हैं, और प्रोग्राम की पंक्ति फिर भी plant रहती है। चिह्न अक्षर p, l, a, n और t चिह्नित करते हैं। Java नाम नहीं ढूँढती। जो पंक्ति आपने टाइप की वह plant में रखी गई और लिखी नहीं गई। सुधार खुला नाम है, System.out.println(plant);। जिस फ़ाइल को आप रखते हैं उसमें यह खुला नाम पहले से है। रखने वाली पंक्ति पर leaf के चारों ओर भी उद्धरण चिह्न न रखें। String plant = "leaf"; leaf को फ़ाइल से ही रखेगा और कभी इंतज़ार नहीं करेगा। यह पन्ना nextLine को रखने वाली पंक्ति पर रखता है और लिखने वाली पंक्ति को खुला रखता है।

अब आप Mint.java चला सकते हैं, इंतज़ार कर सकते हैं, एक पंक्ति टाइप कर सकते हैं, Enter दबा सकते हैं, और देख सकते हैं कि प्रोग्राम वही पंक्ति लिखता है। import java.util.Scanner; public class के ऊपर है। Scanner reader = new Scanner(System.in); कुंजीपटल पर साधन बनाता है। String plant = reader.nextLine(); पंक्ति को रखता है, Enter के बिना। System.out.println(plant); उसे लिखता है और पंक्ति खत्म करता है। बाद का plant = reader.nextLine(); दूसरे Enter का इंतज़ार करता है। import, System.in, और reader का उपयोग से पहले मौजूद होना, यही javac को चुप रखते हैं। अगला पन्ना कुंजीपटल छोड़ता है। वह उन तरह के मान देखता है जिन्हें एक नाम रख सकता है जब आप वे मान फ़ाइल में लिखते हैं, और संख्या से शुरू करता है, टाइप की हुई पंक्ति से नहीं।

स्क्रीन वही पंक्ति है जिसे आपने टाइप किया

जिस फ़ाइल को आप रखते हैं उसमें leaf नहीं है। java Mint के बाद आप leaf टाइप करते हैं और Enter दबाते हैं। टर्मिनल वह टाइप दिखाता है। फिर प्रोग्राम अगली पंक्ति पर leaf लिखता है। जो जगह आप टाइप करते हैं वह उसी पंक्ति का हिस्सा है। दूसरा nextLine दूसरा Enter है, और जिस फ़ाइल को आप रखते हैं उसमें वह नहीं है।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
6
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी