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