是否可以接受任意(未知)否。用户输入的字符串输入行数,直到用户明确输入 -1 并将其存储在字符串中以进行进一步操作。
答案 0 :(得分:0)
您的问题毫无意义...您在谈论从用户那里获取输入,但同时也到达了文件的末尾,这意味着您正在从文件中读取输入。是哪一个?
如果您要说的是文件中的每一行,则用户必须输入一些内容以执行某些操作,然后可以。
我假设您已经有一个文件对象或包含文件路径的字符串,名为file
。
// make a stream for the file
BufferedReader fileReader = new BufferedReader(new FileReader(file));
// make a stream for the console
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
// declare a String to store the file input
String fileInput;
// use a StringBuilder to construct the user input lines
StringBuilder inputLines = new StringBuilder();
// while there is a line to be read
while ((fileInput = fileReader.readLine()) != null) {
/*
** maybe some output here to instruct the user?
*/
// get some input from the user
String userInput = consoleReader.readLine();
// if the user wants to stop
if (userInput.equals("-1")) {
// exit the loop
break;
}
// else append the input
inputLines.append(userInput+"\r\n");
}
// close your streams
fileReader.close();
consoleReader.close();
// perform your further manipulation
doSomething(inputLines.toString());
这些类位于java.io.*
中。另外,请记住捕捉或让您的方法抛出IOException
。
如果您想在每次输入时都执行操作而不是在最后全部输入时,请除去StringBuilder
,并将doSomething(userInput)
移至if语句之前的循环中。
答案 1 :(得分:0)
根据我的收集,您正在尝试从用户那里获取输入,直到该用户键入-1
。如果是这样,请在下面查看我的功能。
public static void main (String[] args)
{
// Scanner is used for I/O
Scanner input = new Scanner(System.in);
// Prompt user to enter text
System.out.println("Enter something ");
// Get input from scanner by using next()
String text = input.next();
// this variable is used to store all previous entries
String storage = "";
// While the user does not enter -1, keep receiving input
// Store user text into a running total variable (storage)
while (!text.equals("-1")) {
System.out.println("You entered: " + text);
text = input.next();
storage = storage + "\n" + text
}
}
我已在该代码块中保留了注释,但我将在此处重申。首先,我们声明I / O对象,以便可以从键盘获得输入。然后,我们要求用户"Enter something"
并等待用户输入内容。在while循环直到用户特别键入-1
之前,重复此过程。