Java中的Scanner类
java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。创建Scanner对象的基本语法:
Scanner s = new Scanner(System.in);
在读取前,一遍需要hasNext和hasNextLine判断是否还有输入的数据。它们的区别为:
next():
1.一定要读取到有效字符后才可以结束输入。
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4.next()不能得到带有空格的字符串。
nextLine():
1.以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2.可以获得空白。
package cuiyuee;
import java.util.Scanner; public class ScannerTest { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
/*
System.out.println("next方式接收:");
if(scan.hasNext()){
String str = scan.next();
System.out.println("输入的数据为:"+str);
}
*/
System.out.println("hasNext方式接收:");
if(scan.hasNextLine()){
String str1 = scan.nextLine();
System.out.println("输入的数据为:"+str1);
}
} }
nextLine()返回结果:
hasNext方式接收:
hi spring
输入的数据为:hi spring
next()返回结果:
next方式接收:
hi spring
输入的数据为:hi
#################################
如果要输入int或float类型的数据,在Scanner类中也有支持,但是在输入之前最好先使用hasNextXxx()方法进行验证,再使用nextXxx()来读取。
package cuiyuee;
import java.util.Scanner; public class ScannerTestIntFloat { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.print("输入整数:");
if(scan.hasNextInt()){
i = scan.nextInt();
System.out.println("整数数据:"+ i);
}else{
System.out.println("输入的不是整数!");
}
System.out.println("输入小数:");
if(scan.hasNextFloat()){
f = scan.nextFloat();
System.out.println("小数数据:"+f);
}else{
System.out.println("输入的不是小数!");
}
} }
package cuiyuee;
import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in); double sum = 0;
int m = 0; while(scan.hasNextDouble()){
double x = scan.nextDouble();
m = m+1;
sum = sum + x;
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均值是:"+(sum/m));
} }
输出为:
1.2
2
3.456
235
end
4个数的和为:241.656
4个数的平均值是:60.414
Java中的Scanner类的更多相关文章
- Java中使用Scanner类进行键盘的输入详解
我们在使用Java写代码时,经常会遇到从键盘输入字符串等操作,这时候我们需要用到的是我们的Scanner类来实现获取用户从键盘上的输入操作. Scanner类是一个基于正则表达式的文本扫描器,它可以从 ...
- Java中的Scanner类和String类
1:Scanner的使用(了解) (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西. 它其实是标准的输入流,对应于键 ...
- Java基础之Scanner类中next()与nextLine()方法的区别
java中使用Scanner类实现数据输入十分简单方便,Scanner类中next()与nextLine()都可以实现字符串String的获取,所以我们会纠结二者之间的区别. 其实next()与nex ...
- java 中常用的类
java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l static double abs(double a) 获取double 的绝对值 l sta ...
- Java Character & String & Scanner类
Character类 Character 类用于对单个字符进行操作. Character 类在对象中包装一个基本类型 char 的值 char用法: char ch = 'a'; // Unicode ...
- Java常用API(Scanner类)
Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...
- 带有静态方法的类(java中的math类)
带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...
- java中的File类
File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
- Java基础(43):Java中的Object类与其方法(转)
Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...
随机推荐
- JAVA练手--链表
package tet; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; impo ...
- iOS开源项目周报0323
由OpenDigg 出品的iOS开源项目周报第十三期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. CHIPag ...
- API ,批量添加
添加引用:cors using system.web.http.cors API添加这句话: [EnableCors("*", "*", &qu ...
- [javaSE] 网络编程(浏览器客户端-自定义服务端)
获取ServerSocket对象,new出来构造参数:int类型端口号 调用ServerSocket对象的accept()方法,得到Socket对象 获取PrintWriter对象,new出来,构造参 ...
- Java学习--java中的集合框架、Collection接口、list接口
与数组相比:1.数组的长度固定,而集合的长度可变2.数组只能通过下表访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象 java集合框架:collection(list序列,queue ...
- MySQL一查就会
Table1--mysql常用操作 主题 用例 说明 书写规范 数据库和表的名称不一定要大写. 输入文本类型的数据时都要加上单引号: NULL 表示未定义,它不会等于另一个NULL: 不要使用双引号. ...
- k:特殊的线性表—栈
栈(Stack): 栈是一种特殊的线性表,栈中的数据元素以及数据元素之间的逻辑关系和线性表相同,两者之间的差别在于:线性表的插入和删除操作可以在表的任意位置进行,而栈的插入和删除操作只允许在表的尾端 ...
- vue的简单测试
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python学习之老男孩python全栈第九期_day021知识点总结——包、异常处理
一. 包 # 把解决一类问题的模块放在同一个文件夹里 -- 包 # 创建目录代码# import os# os.makedirs('glance/api')# os.makedirs('glance/ ...
- VC+++ 操作word
最近完成了一个使用VC++ 操作word生成扫描报告的功能,在这里将过程记录下来,开发环境为visual studio 2008 导入接口 首先在创建的MFC项目中引入word相关组件 右键点击 项目 ...