JAVA获取键盘输入值方法 -- 学习笔记

转自 网络


JAVA程序开发过程中,需要从键盘获取输入值是常有的事,但java它没有像c语言给我们提供scanf(),c++给我们提供cin()获取键盘输入值的现成函数。

java中获取键盘输入值一般有以下三种解决方法:


方法一: 从控制台接受一个字符,然后将其打印出来

import java.io.*;

public static void main(String[] args) throws IOException{

     System.out.print("Please enter a char:");

     char I = (char) System.in.read();

     System.out.println("The char you enter is:" + I);

}

*******System.in.read()只能针对一个字符的获取,同时,获取进来的变量类型只能是char,当输入其它类型时,还需要修改变量类型。*******


方法二: 从控制台接受一个字符串,然后将其打印出来。

在这里我们需要用到BufferedReader类和InputStreamReader类

import java.io.*;

public static void main(String[] args) throws IOException{

     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

     String str = null;

     System.out.println("Please enter your value:");

     str = br.readLine();

     System.out.println("the string you enter was: " + str);

}


方法三: 使用Scanner类

import java.io.*;

import java.util.Scanner;

public static void main(String[] args) throws IOException{

     Scanner sc = new Scanner(System.in);


     System.out.println("Please input your name:");

     String name = sc.nextLine();


     System.out.println("Please input your age: ");

     int age = sc.nextInt();


     System.out.println("Please input your salary: ");

     float salary = sc.nextFloat();


     System.out.println("Your info was below:");

     System.out.println("name: " + name +"\n" + "Age: " + age +"\n" + "Salary: " + salary);

}

这段代码已经表明,Scanner类不管是对于字符串还是整数型数据或者float型的变量。只需要做点小小的改动,就能够实现功能,它的功能最强大。


但是,


在使用第三种输入方法的时候有一个需要注意的地方,就是nextLine()函数,在io包中有一个和它功能一样的函数next()函数,他们的功能一样,但是在实现上有什么差别呢?请看下面代码:

import java.io.*;

import java.util.Scanner;

public static void main(String[] args) throws IOException{

     Scanner sc = new Scanner(System.in);


     System.out.println("Please input your age: ");

     int age = sc.nextInt();


     System.out.println("Please input your name:");

     String name = sc.nextLine();


     //System.out.println("Please input your age: ");

     //int age = sc.nextInt();


     System.out.println("Please input your salary: ");

     float salary = sc.nextFloat();


     System.out.println("Your info was below:");

     System.out.println("name: " + name +"\n" + "Age: " + age +"\n" + "Salary: " + salary);

}

此段代码和上边的第三种实现方法的区别在于,这段代码先执行nextInt()再执行nextLine(),而第三种方法中是先执行nextLine()再执行nextInt()。

当执行这两段代码时,你会发现第三种方法可以正常的输入,但是在上面的代码中,输入年龄后,敲击enter键后,跳过了输入姓名,直接到了输入工资这行。

回车符会被nextLine()函数吸收,


*******next()是不接受回车符、tab和空格, 而nextLine()可以接受空格或者tab键,其输入应该以enter键结束。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值