2012-08-07 9 views
9

द्वारा इनपुट लाइन पढ़ें मैं जावा में लाइन द्वारा इनपुट लाइन कैसे पढ़ूं? मैंने खोज की और अब तक मेरे पास यह है:लाइन

import java.util.Scanner; 

public class MatrixReader { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     while (input.hasNext()) { 
      System.out.print(input.nextLine()); 
     } 
    } 

समस्या यह है कि यह अंतिम पंक्ति नहीं पढ़ता है। तो अगर मैं इनपुट

10 5 4 20 
11 6 55 3 
9 33 27 16 

इसके उत्पादन केवल

10 5 4 20 11 6 55 3 
+5

आपके सटीक कोड का उपयोग करके मेरे लिए ठीक काम करता है। एंटर दबाएं मत भूलना। – Vulcan

+0

क्यों 'स्कैनर.hasNextLine' नहीं? – oldrinb

+0

मुझे लगता है कि आपने एक बार –

उत्तर

9

आदर्श रूप में आप एक अंतिम println जोड़ना चाहिए किया जाएगा() क्योंकि डिफ़ॉल्ट रूप से System.out एक PrintStream कि केवल flushes जब एक नई पंक्ति भेज दिया जाता है का उपयोग करता है। When/why to call System.out.flush() in Java

while (input.hasNext()) { 
    System.out.print(input.nextLine()); 
} 
System.out.println(); 

देखें यद्यपि संभव अपनी समस्या के लिए अन्य कारण हैं।

+0

यह उत्तर कैसे प्रश्न का उत्तर देता है ?? – Bohdan

1

hasnextLine() विधि का उपयोग करने का प्रयास करें।

while (input.hasnextLine()){ 


    System.out.print(input.nextLine()); 


} 
0

पहले पोस्ट किए गए सुझावों में टाइपो (हैक्स्टलाइनलाइन वर्तनी) और नई लाइन प्रिंटिंग (प्रत्येक पंक्ति की आवश्यकता है प्रिंट) मुद्दों। नीचे सही संस्करण है -

import java.util.Scanner; 

public class XXXX { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     while (input.hasNextLine()){ 
      System.out.println(input.nextLine()); 
     } 
    } 
}