Java基础(11)-输入Scanner的使用详解
2023-09-14 09:12:51 时间
Java基础(1)-Java的学习路线
Java基础(2)-Markdown语法
Java基础(3)-计算机基础
Java基础(4)-Java简介
Java基础(5)-win10系统卸载JDK
Java基础(6)-Win10系统下载安装配置JDK1.8
Java基础(7)-CentOS安装jdk1.8
Java基础(8)-Java程序运行机制
Java基础(9)-基础语法
Java基础(10)-JavaDoc命令行生成方式和Intellij IDEA 生成方式
Java基础(11)-输入Scanner的使用详解
Java基础(12)-流程控制之选择结构
Java基础(13)-流程控制之循环结构
Java基础(14)-流程控制之break和continue
Java基础(15)-方法详解
Java基础(16)-数组
Java基础(17)-CentOS安装配置maven
1、Scanner对象
- java.util.Scanner 可以通过此类获取用户的输入
- 基本语法:
Scanner s=new Scanner(System.in);
- 通过Scanner类的next()和nextLine()方法获取输入的字符串
- 通过hasNext()和hasNextLine()方法判断是否还有输入
使用next()方法获取输入,只能获取第一个空格之前的字符串
package com.redrose2100.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("使用next方式接收:");
if(scanner.hasNext())
{
String str=scanner.next();
System.out.println("输入的内容为:"+str);
}
scanner.close();
}
}
执行结果如下:
使用next方式接收:
hello world
输入的内容为:hello
使用nextLine()方法获取输入
package com.redrose2100.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("使用nextLine()方式获取输入:");
if (scanner.hasNextLine())
{
String str=scanner.nextLine();
System.out.println("获取到的内容为:"+str);
}
scanner.close();
}
}
执行结果为:
使用nextLine()方式获取输入:
hello world
获取到的内容为:hello world
总结:
-
next():
- 1、一定要读取到有效字符后才可以结束输入
- 2、对输入有效字符之前遇到的空白,next方法会自动将其去掉
- 3、只有输入有效字符后才将其后面的输入的空白作为分隔符或者结束符
- 4、next不能得到带有空格的字符串
-
nextLine():
- 以Enter为结束符,也就是说nextLine方法返回的是输入回车之前的所有字符
- 可以获得空白
-
在大多数情况下主要使用nextLine方法,next方法因为遇到空格就结束了,所以很多情况下不会使用
如下演示scanner获取整数和小数的例子
package com.redrose2100.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int i=0;
float f=0.0f;
System.out.println("请输入整数:");
if (scanner.hasNextInt()){
i=scanner.nextInt();
System.out.println("整数数据:"+i);
}
else{
System.out.println("输入的不是整数数据.");
}
System.out.println("请输入小数:");
if(scanner.hasNextFloat()){
f=scanner.nextFloat();
System.out.println("小数数据:"+f);
}
else{
System.out.println("输入的不是小数");
}
scanner.close();
}
}
执行结果如下:
请输入整数:
10
整数数据:10
请输入小数:
1.0
小数数据:1.0
使用Scanner对象的一个综合性实例:输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输出执行语句
package com.redrose2100.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
// 输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输出执行语句
Scanner scanner =new Scanner(System.in);
double sum=0;
int num=0;
while(scanner.hasNextDouble()){
double x=scanner.nextDouble();
num++;
sum+=x;
System.out.println("你输入了第"+num+"个数:"+x);
}
System.out.println("输入"+num+"个数总和:"+sum+" 平均数:"+(sum/num));
scanner.close();
}
}
执行结果如下:
1
你输入了第1个数:1.0
2
你输入了第2个数:2.0
3
你输入了第3个数:3.0
4
你输入了第4个数:4.0
5
你输入了第5个数:5.0
6
你输入了第6个数:6.0
7
你输入了第7个数:7.0
8
你输入了第8个数:8.0
9
你输入了第9个数:9.0
10
你输入了第10个数:10.0
a
输入10个数总和:55.0 平均数:5.5
相关文章
- [Java基础] java多线程关于消费者和生产者
- MySQL_(Java)【事物操作】使用JDBC模拟银行转账向数据库发起修改请求
- Java面向对象基础--内部类
- hibernate正向生成数据库表以及配置——Student.java
- java基础之反射
- Java实现 LeetCode 743 网络延迟时间(Dijkstra经典例题)
- Java实现指定年份月份的日历表
- java实现 洛谷 P1056 排座椅
- Java实现 蓝桥杯 历届试题 大臣的旅费
- Java中构造方法的详细介绍
- Java中输入时IO包与Scanner的区别
- Java实现 蓝桥杯VIP 基础练习 完美的代价
- Java实现 蓝桥杯VIP 基础练习 Huffuman树
- [Java Spring] @InitBinder
- Java基础之泛型
- Java每日一练(20230324)
- 【面试题】Java基础
- Java Logger(java日志)
- Java基础面试题
- JAVA运行java程序
- Java Document生成和解析XML(DOMHelper.createDocument()方法过期了)
- Java开发基础入门之Java基础中的Stack类及其常用方法
- java.lang.OutOfMemoryError: Java heap space
- AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API
- 【java基础】输入/输出流基本介绍
- 【java基础】ArrayList源码解析
- 【java基础】包装类,自动装箱和自动拆箱
- 【快速入门大数据】第一部分:Java基础知识回顾之语言基础01:开发环境配置、数据类型、运算符、流程控制