2017-02-24 63 views
1

我有一點麻煩搞清楚如何讀取用戶輸入的多線成一臺掃描儀,然後將其存儲到一個字符串。 我至今是向下跌破:讀多行到掃描儀的對象在Java中

public static String getUserString(Scanner keyboard) { 
    System.out.println("Enter Initial Text:"); 
    String input = ""; 
    String nextLine = keyboard.nextLine(); 
    while(keyboard.hasNextLine()){ 
     input += keyboard.nextLine 
    }; 
    return input; 
} 

則前三的主要方法的語句是:

Scanner scnr = new Scanner(System.in); 
String userString = getUserString(scnr); 
System.out.println("\nCurrent Text: " + userString); 

我的目標是有它在那裏,一旦用戶輸入自己的文本,所有他們所要做的就是打在他們要顯示回他們所鍵入的一切兩次Enter(以下「當前文字:」)。另外我需要將字符串存儲在主變量userString中(我必須在其他方法中使用此變量)。任何與此有關的幫助將非常感激。它是一流的,我們不能用數組或StringBuilder的或任何要比while循環和基本字符串方法更加複雜。

謝謝!

回答

2

使用的BufferedReader

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
String input = ""; 
String line; 
while((line = br.readLine()) != null){ 
    if(line.isEmpty()){ 
     break; // if an input is empty, break 
    } 
    input += line + "\n"; 
} 
br.close(); 
System.out.println(input); 

或者使用掃描儀

String input = ""; 
Scanner keyboard = new Scanner(System.in); 
String line; 
while (keyboard.hasNextLine()) { 
    line = keyboard.nextLine(); 
    if (line.isEmpty()) { 
     break; 
    } 
    input += line + "\n"; 
} 
System.out.println(input); 

對於這兩種情況,樣品I/O:

Welcome to Stackoverflow 
Hello My friend 
Its over now 

Welcome to Stackoverflow 
Hello My friend 
Its over now 

完整的C頌

public static void main (String[] args) { 
    Scanner scnr = new Scanner(System.in); 
    String userString = getUserString(scnr); 
    System.out.println("\nCurrent Text: " + userString); 
} 

public static String getUserString(Scanner keyboard) { 
    System.out.println("Enter Initial Text: "); 
    String input = ""; 
    String line; 
    while (keyboard.hasNextLine()) { 
     line = keyboard.nextLine(); 
     if (line.isEmpty()) { 
      break; 
     } 
     input += line + "\n"; 
    } 
    return input; 
}