接受String类型的任意多行输入并将其存储在变量中

时间:2018-06-21 14:47:56

标签: java python input java.util.scanner

是否可以接受任意(未知)否。用户输入的字符串输入行数,直到用户明确输入 -1 并将其存储在字符串中以进行进一步操作。

2 个答案:

答案 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之前,重复此过程。