2013-10-24 10 views
5

वाक्य स्ट्रिंग को रिक्त स्थान से अलग शब्दों का एक गुच्छा होने की उम्मीद है, उदाहरण के लिए "अब समय आ गया है"। शोवर्ड जॉब प्रति पंक्ति एक वाक्य के शब्दों को आउटपुट करना है।एक अलग पंक्ति में शब्द द्वारा वाक्य शब्द कैसे दिखाएं

यह मेरा होमवर्क है, और मैं कोशिश कर रहा हूं, जैसा कि आप नीचे दिए गए कोड से देख सकते हैं। मैं यह नहीं समझ सकता कि शब्द के माध्यम से शब्द को आउटपुट करने के लिए किस प्रकार और किस लूप का उपयोग करना है ... कृपया मदद करें।

import java.util.Scanner; 


public class test { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 

     System.out.println("Enter the sentence"); 
     String sentence = in.nextLine(); 

     showWords(sentence); 
} 

    public static void showWords(String sentence) { 
     int space = sentence.indexOf(" "); 
     sentence = sentence.substring(0,space) + "\n" + sentence.substring(space+1); 
     System.out.println(sentence); 
    } 

} 

उत्तर

0

जावा के String वर्ग एक replace विधि है जो आप इस पर गौर करना चाहिए है। इससे यह homework बहुत आसान हो जाएगा।

String.replace

1

चूंकि यह एक होमवर्क सवाल यह है कि, मैं तुम्हें सटीक कोड नहीं देंगे लेकिन मैं आपको String श्रेणी में विधि split को देखने के लिए चाहते हैं। और फिर मैं एक लूप की सिफारिश करेंगे।

एक अन्य विकल्प अपने स्ट्रिंग में बदलने के लिए जब तक वहाँ (तुम कैसे करते पर यह एक पाश के साथ और एक पाश के बिना दोनों किया जा सकता है, निर्भर करता है) और नहीं छोड़ रिक्त स्थान हैं

+0

'प्रतिस्थापन विधि' एक विधि विधि के साथ स्पेस चार की सभी घटनाओं को संभालेगा। कोई लूपिंग की जरूरत नहीं है। – nhgrif

+0

@nhgrif वह विधि हां, लेकिन अन्य वैकल्पिक विधियां हैं (जैसे प्रतिस्थापन फर्स्ट, या ओपी जैसे सबस्ट्रिंग का उपयोग करना पहले से ही प्रयास किया गया है)।'प्रतिस्थापन' पाठ्यक्रम का सबसे आसान समाधान हो सकता है। –

+0

एकाधिक रिक्त स्थान के बारे में क्या? रेगेक्स प्रतिस्थापन एक बेहतर विकल्प है – Bohemian

0

अद्यतन

है

स्पेस कैरेक्टर डिलीमीटर पर इनपुट स्ट्रिंग को विभाजित करने के लिए स्ट्रिंग क्लास की स्प्लिट विधि का उपयोग करें ताकि आप शब्दों की स्ट्रिंग सरणी के साथ समाप्त हो जाएं।

फिर उस सरणी के प्रत्येक आइटम को मुद्रित करने के लिए संशोधित लूप का उपयोग करके उस सरणी के माध्यम से लूप करें। अतिरिक्त लाभ यह है कि कई रिक्त स्थान आउटपुट के रूप में रिक्त लाइनों नहीं छोड़ देंगे साथ

System.out.println(sentence.replaceAll("\\s+", "\n")); 

:

import java.util.Scanner; 


    public class Test { 
     public static void main(String[] args) { 
      Scanner in = new Scanner(System.in); 

      System.out.println("Enter the sentence"); 
      String sentence = in.nextLine(); 

      showWords(sentence); 
    } 

     public static void showWords(String sentence) { 
      String[] words = sentence.split(' '); 
      for(String word : words) { 
      System.out.println(word); 
      } 
     } 

    } 
+2

सवाल एक होमवर्क असाइनमेंट के बारे में है। एक सही जवाब पोस्ट करना विशेष रूप से सहायक नहीं है। – nhgrif

+0

@nhgrif: हाँ आप सही हैं। मैंने कुछ स्पष्टीकरण जोड़ा। – Rami

1

का उपयोग regex आप एक लाइनर इस्तेमाल कर सकते हैं।


आप की जरूरत है एक सरल String तरीकों आप split()

String[] split = sentence.split(" "); 
StringBuilder sb = new StringBuilder(); 
for (String word : split) { 
    if (word.length() > 0) { // eliminate blank lines 
     sb.append(word).append("\n"); 
    } 
} 
System.out.println(sb); 


आप एक और भी अधिक नंगे हड्डियों दृष्टिकोण ( String अनुक्रमित करने के लिए नीचे) के रूप में की जरूरत है और अपने खुद के कोड की तर्ज पर अधिक इस्तेमाल कर सकते हैं दृष्टिकोण; आपको अपने कोड को लूप के अंदर लपेटना होगा और इसे थोड़ा सा ट्विक करना होगा।

int space, word = 0; 
StringBuilder sb = new StringBuilder(); 

while ((space = sentence.indexOf(" ", word)) != -1) { 
    if (space != word) { // eliminate consecutive spaces 
     sb.append(sentence.substring(word, space)).append("\n"); 
    } 
    word = space + 1; 
} 

// append the last word 
sb.append(sentence.substring(word)); 

System.out.println(sb); 
+0

प्रश्न होमवर्क असाइनमेंट के बारे में है। एक सही जवाब पोस्ट करना विशेष रूप से सहायक नहीं है। – nhgrif

1

आप सही रास्ते पर हैं। आपका शोवर्ड विधि पहले शब्द के लिए काम करता है, आपको बस तब तक करना होगा जब तक कोई शब्द न हो।

उनके माध्यम से लूप, अधिमानतः थोड़ी देर के लूप के साथ। यदि आप थोड़ी देर लूप का उपयोग करते हैं, तो इस बारे में सोचें कि आपको इसे रोकने के लिए कब चाहिए, जो तब होगा जब कोई और शब्द न हो।

ऐसा करने के लिए, आप या तो अंतिम शब्द का सूचकांक रख सकते हैं और वहां से खोज सकते हैं (जब तक कोई और नहीं है), या वाक्य स्ट्रिंग खाली होने तक अंतिम शब्द हटाएं।

संबंधित मुद्दे