Java 如何从控制台读取输入

Java 如何从控制台读取输入,java,Java,我必须阅读以下格式 1 12 23 34 因此,所有输入都由一条线分隔 我试过以下方法 br = new Scanner(System.in); num = Integer.parseInt(br.next()); while(br.hasNextInt()) { num = br.nextInt() ; System.out.println(num); } 但它并没有像我预期的那样起作用。如果我输入第一个输入,它就会开始处理

我必须阅读以下格式

1

12

23

34
因此,所有输入都由一条线分隔

我试过以下方法

   br = new Scanner(System.in);
   num = Integer.parseInt(br.next());
   while(br.hasNextInt()) {
        num = br.nextInt() ; 
        System.out.println(num);
    }

但它并没有像我预期的那样起作用。如果我输入第一个输入,它就会开始处理并打印。它不是在等我进入下一行。在C语言中,我可以使用sscanf。但在java中,我不知道如何允许用户输入多行输入?请提出一些想法

您必须检查下一个可用输入,然后获取输入

br = new Scanner(System.in);
//num = Integer.parseInt(br.next());//remove this line
while(br.hasNextInt()) {//if number is avaialable
     num = br.nextInt(); //get that number
     System.out.println(num);
}
以下是:

您需要添加
br.nextLine()
开始阅读下一行。

尝试


br=新扫描仪(System.in);
while(真){ int num=Integer.parseInt(br.nextLine()); 系统输出打印项数(num); }

您需要什么并不完全清楚,但此代码(如下)将允许您读取和存储多行输入,然后在完成后将它们全部打印出来

systemInScanner = new Scanner ( System.in ) ;

ArrayList < String > arrayListOfStrings = new ArrayList < > ( ) ; 

while ( systemInScanner . hasNextLine ( ) ) 
{
    arrayListOfStrings . add ( systemInScanner . NextLine ( ) ) ; 
}

for ( String line : input ) 
{
    System . out . println ( line ) ; 
}
systemInScanner=新扫描仪(System.in);
ArrayListArrayListOffString=new ArrayList<>();
while(systemInScanner.hasNextLine())
{
add(systemInScanner.NextLine());
}
for(字符串行:输入)
{
系统输出打印项次(行);
}

如果你愿意逐行阅读。此代码逐行读取,并在输入空行时退出

br = new Scanner(System.in);
        int num=0;
        String input;
        input = br.nextLine();
        while(input.length()!=0) {
            num = Integer.parseInt(input);
            System.out.println(num);
            input = br.nextLine();
        }

你的问题不是很清楚;但是,如果您试图获取用户输入,然后稍后打印,则可以将输入保存到ArrayList

import java.util.ArrayList;
import java.util.Scanner;
public class tu {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter numbers, when you're done, enter a letter.");
        char firstLetter = '*';
        ArrayList<String> al = new ArrayList<>();
        while(!Character.isLetter(firstLetter)) {
            String input = "";
            boolean nullInput = false;
            do{
                if(nullInput)
                    System.out.println("Error; you can't enter an empty string.");
                nullInput = false;
                input = in.nextLine();
                if(input.length() == 0)
                    nullInput = true;
            }while(nullInput);
            firstLetter = input.charAt(0);
            al.add(input);
        }
        al.remove(al.size()-1);
        for(int i = 0; i < al.size(); i++) {
            System.out.println(); //creates newline in console
            System.out.println(al.get(i));

        }

    }


}
import java.util.ArrayList;
导入java.util.Scanner;
公共类tu{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入数字,完成后输入字母”);
字符firstLetter='*';
ArrayList al=新的ArrayList();
while(!Character.isleter(第一个字母)){
字符串输入=”;
布尔输入=false;
做{
如果(空输入)
System.out.println(“错误;不能输入空字符串。”);
空输入=假;
input=in.nextLine();
if(input.length()==0)
nullInput=true;
}while(空输入);
firstLetter=input.charAt(0);
al.添加(输入);
}
al.移除(al.大小()-1);
对于(int i=0;i
不,它不工作。它的工作原理类似于“input[prints]next_input[print]”。我希望下一次输入[print inpur next_input]首先我要得到所有的数字和我想要的nprocess@user3801433我只解析了你的代码。它将像您的代码一样打印。我没有改变任何事情。我刚刚添加了nextLine()。它把指针移到了scannerOn的下一行,仔细想想,真的应该被替换,但我需要更多的上下文来进一步改进它,这不会在最后终止。它将抛出异常
br = new Scanner(System.in);
        int num=0;
        String input;
        input = br.nextLine();
        while(input.length()!=0) {
            num = Integer.parseInt(input);
            System.out.println(num);
            input = br.nextLine();
        }
import java.util.ArrayList;
import java.util.Scanner;
public class tu {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter numbers, when you're done, enter a letter.");
        char firstLetter = '*';
        ArrayList<String> al = new ArrayList<>();
        while(!Character.isLetter(firstLetter)) {
            String input = "";
            boolean nullInput = false;
            do{
                if(nullInput)
                    System.out.println("Error; you can't enter an empty string.");
                nullInput = false;
                input = in.nextLine();
                if(input.length() == 0)
                    nullInput = true;
            }while(nullInput);
            firstLetter = input.charAt(0);
            al.add(input);
        }
        al.remove(al.size()-1);
        for(int i = 0; i < al.size(); i++) {
            System.out.println(); //creates newline in console
            System.out.println(al.get(i));

        }

    }


}
Scanner scanner = new.scanner(System.in);
String abc = scanner.next();
int a = scanner.nextInt();
scanner.close();
 br = new BufferedReader(new InputStreamReader(System.in));
        int ch;
        while ((ch = br.read()) != -1) {
            if (ch == 10) {
                System.out.println();
            }
        }