via: http://blog.sina.com.cn/s/blog_93dc666c0101h00f.html
Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:
以下将列出几种方法:
方法一:从控制台接收一个字符,然后将其打印出来
import java.io.*;
public static void main(String [] args) throws IOException{
System.out.print("Enter a Char:");
char i = (char) System.in.read();
System.out.println("your char is :"+i);
}
虽然此方式实现了从键盘获取输入的字符,但是System.out.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("Enter your value:");
str = br.readLine();
System.out.println("your value is :"+str);
}
这样我们就能获取我们输入的字符串。
方法三:这种方法我认为是最简单,最强大的,就是用Scanner类
import java.util.Scanner;
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
这段代码已经表明,Scanner类不管是对于字符串还是整型数据或者float类型的变量,只需做一点小小的改变,就能够实现功能!无疑他是最强大的!
但是,在使用第三种输入方法的时候有一个需要注意的地方,就是nextLine()函数,在io包中有一个和他功能一样的函数我next()函数,他们的功能一样,但是在实现上有什么差别呢,请看下面代码:
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
这段代码和上边第三种实现输入方法给出的例子代码区别在于,这段代码先执行nextInit()再执行nextLine(),而第三种方法的例子是先执行nextLine(),再执行nextInit(),当你在运行着两段代码的时候你会发现第三种方法的例子可以实现正常的输入,而这段代码却在输入年龄,敲击enter键后,跳过了输入姓名,直接到了输入工资这里,(可以自己运行代码看看)这是为什么呢?其实,在执行nextInit()函数之后,敲击了enter回车键,回车符会被nextLine()函数吸收,实际上是执行了nextLine()函数吸收了输入的回车符(并不是没有执行nextLine函数),前面讲到和nextLine()功能一样的函数next(),他们的区别就在于:next()函数不会接收回车符和tab,或者空格键等,所以在使用nextLine()函数的时候,要注意敲击的回车符有个被其吸收,导致程序出现BUG!!!
最后小小的总结一下next()和nextLine()的区别:
在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。
相关推荐
欧柏泰克课堂小结:Java编程中获取键盘输入值的方法
主要介绍了Java中获取键盘输入值的三种方法介绍,具有一定参考价值,需要的朋友可以了解下。
程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们束手无策,请你看...
自己做的小东西,可能有未完善的地方;有错请喷!Java 获取控制台输入的整数并输出最大值和最小值。
键盘输入3103,打印出三一零三。 处理方法: 1、定义一个字符串数组,保存汉字数字 2、然后将传入的数字转换成字符串,并且求出字符串的长度, 3、根据求出的的字符串长度,调用pow方法,计算出传入数字...
java开发源码,模拟鼠标、键盘操作,获取鼠标X Y坐标等功能,可以实现前台鼠标控制游戏窗口等功能
这篇文章讲介绍Java怎么从键盘输入内容以及Scanner类的其他用法 Scanner类简介 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。接下来,我们将演示一个最简单的数据输入,并通过...
第六章 输入/输出流和文件6.1 输入/输出流6.2 文件读写6.1 输入/输出流通常程序需要从外部获取/输出信息这个“外部”范围很广,包括诸如键盘、显示器、文
编写一个Java程序从键盘获分别取读取两个整数,并计算这两个整数之和
记录三名学生的5门成绩,用JAVA数组计算每名学生的平均分,并打印成绩和平均分。
1、编写一个 Java 应用程序,用户从键盘输入十名学生的信息,至少包括姓名、年龄、出生年月日、java 课程实验成绩,成绩使用浮点数,年龄使用整型,程序将输出年龄、java 课程实验成绩的平均值。 提示:Scanner 对象...
今天小编就为大家分享一篇java获取键盘输入的数字,并进行排序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
应用洗牌算法生成随机序列,制作一个键位随机的输入键盘
System.in 表示Java标准输入流,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。 Scanner in =new Scanner(System.in); 从控制台获取输入 创建输入流对象in 必须先导入Scanner类 import java.util....
具体讲解了java数据库操作基本流程
DumpMethods.java 使用反射机制来获取类中的方法 getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors....
用了很多if语句的自定义模拟键盘按键输入程序 代码600行左右 会根据你设定的内容自动打开某个程序并输入 可以用于自动登录QQ等软件 程序会自动获取桌面的路径,你可以设置打开哪个程序 代码很简单,注释很全(已经...
从键盘读入一行信息,根据读入的内容来判定是否发生了异常。如果读入的是空串,则抛出EmptyStringException异常;如果读入的内容中包含有数字,则抛出IncludeNumberException异常。 /*提示:程序中用到String的...
`Scanner` 类位于 `java.util` 包中,它提供了各种方法来从标准输入流(通常是键盘)中读取用户输入的不同类型的数据。 下面是一个简单的示例,演示如何使用 `Scanner` 类来获取用户的输入: ```java import java....
将成绩划分为5个等级,并从键盘输入一个成绩,判断其等级并输出\ 1.设置一个变量,从键盘输入 2.用if语句实现判断优甲乙丙丁