如何从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控制台获得用户输入?的主要内容,如果未能解决你的问题,请参考以下文章

在用户在java中输入正确的输入之前,如何从用户那里获得输入?

java怎么获取控制台输入的数据

java 怎么获得控制台的输入

java——获取从控制台输入的数据的方法

获取键盘输入

java中从控制台让用户输入参数的语句是啥?