如何从java控制台获得用户输入?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从java控制台获得用户输入?相关的知识,希望对你有一定的参考价值。
new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法。
举例:
Scanner sc= new Scanner(System.in)String st = sc.nextLine();//获取输入信息 参考技术A 1、构造一个Scanner对象scanner,利用System.in作为构造参数
2、利用scanner中的方法获得用户的输入
3、获取整数可以用nextInt(),其他字符串之类的可以直接next()
示例:
Scanner scanner = new Scanner(System.in);
scanner.next(); 参考技术B 方法很多的,介绍两个:用BufferedReader br = new BufferedReader(new InputStreamReader(System.in));输入的内容就是br.readLine();或者就是Scanner s=new Scanner(System.in);输入的内容就是s.nextLine();其实Scanner就是流的封装 参考技术C
可以用Scanner类,从控制台获取用户输入。
比如,用户从控制台输入一个数字,就这样做:
Scanner sc = new Scanner(System.in);int input = sc.nextInt(); 参考技术D Scanner sc = new Scanner(System.in);
System.out.println("输入第一个boolean值(true/false):");
if(sc.nextBoolean())
System.out.println("输入布尔:真的");
else
System.out.println("输入布尔:假的");
System.out.println("输入第一个数字:");
System.out.println("输入数字:"+sc.nextInt());
System.out.println("输入一个字符串:");
System.out.println("输入字符串:"+sc.next());
System.out.println("输入一个长整型:");
System.out.println("输入长整型:"+sc.nextLong());
根据你需要输入的类型选择sc.nextXXX
在用户在java中输入正确的输入之前,如何从用户那里获得输入?
我尝试在java中创建一个菜单并获取用户输入直到用户输入正确的输入,所以我在我的代码中使用了while()。但是当我运行我的代码时,唯一运行的是while循环,我输入输入的整个时间,甚至是正确的输入。
//Show Menu Of Languages
System.out.print("Welcome To iHome Application
Pleas Choose You're Wanted Language" +
"(Enter Number Of Language Or Type You're Wanted Language) :
1)English
or
2)Persian " + "
");
//Get Input From User
Scanner input = new Scanner(System.in);
String MenuLanguage = input.next();
//Get User Language Until User Enter The Right Format
while (!MenuLanguage.equalsIgnoreCase("1") || (!MenuLanguage.equalsIgnoreCase("English")) ||
(!MenuLanguage.equalsIgnoreCase("2")) || (!MenuLanguage.equalsIgnoreCase("Persian")) ) {
System.out.print("
Pleas Enter An Option From Above Menu. Try Again.
");
MenuLanguage = input.next();
}
if ((MenuLanguage.equalsIgnoreCase("1")) || (MenuLanguage.equalsIgnoreCase("English"))) {
} else if ((MenuLanguage.equalsIgnoreCase("2")) || (MenuLanguage.equalsIgnoreCase("Persian"))) {
System.out.print("Sorry. Persian Language Will Be Available Soon.");
}
但总是我的输出是:“请从菜单上方输入一个选项。再试一次。”
什么是我的问题?
答案
在while循环中,检查OR(||
)。用AND替换它(&&
)
while (!MenuLanguage.equalsIgnoreCase("1") && (!MenuLanguage.equalsIgnoreCase("English")) &&
(!MenuLanguage.equalsIgnoreCase("2")) && (!MenuLanguage.equalsIgnoreCase("Persian")) )
条件不能满足不同输入的OR。如果它是一回事,它将不会是其他3件事。使用和,您可以检查它不是4个条件。
以上是关于如何从java控制台获得用户输入?的主要内容,如果未能解决你的问题,请参考以下文章