gpt4 book ai didi

java - 将多行读入Java中的扫描仪对象

转载 作者:行者123 更新时间:2023-11-29 04:34:12 24 4
gpt4 key购买 nike

我在弄清楚如何将多行用户输入读取到扫描仪中,然后将其存储到单个字符串中时遇到了一些麻烦。到目前为止,我所拥有的在下面:

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;
}

那么main方法的前三个语句是:

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

我的目标是让它在用户键入他们的文本后,他们所要做的就是按两次 Enter 键,他们键入的所有内容都会显示在他们面前(在“当前文本:”之后)。我还需要将字符串存储在 main 中的变量 userString 中(我必须在其他方法中使用此变量)。对此有任何帮助将不胜感激。它用于类,我们不能使用数组或 Stringbuilder 或任何比 while 循环和基本字符串方法复杂得多的东西。

谢谢!

最佳答案

使用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

完整代码

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;
}

关于java - 将多行读入Java中的扫描仪对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com