Java基本语法--控制台输入(Scanner类)
通过Scanner类获取用户输入时,控制台会一直等待用户的输入,可以输入不同类型的值。本篇博客主要讲解从控制台输入值,即Scanner类的使用方法。
Api文档中关于Scanner类的构造方法
键盘输入:Scanner(InputStream source)
键盘输入数字型:byte,short,int,long,float,double
/*输入数字型:byte,short,int,long,float,double*/
public class scannerDemo {
public static void main(String args[]) {
//声明Scanner,方式为键盘输入
Scanner sc = new Scanner(System.in);
//输入一个int型
System.out.print("输入一个int型数字:");
int inum = sc.nextInt();
System.out.println("你输入了一个int型数学:" + inum);
//判断输入的是否为int型
System.out.print("输入一个int型数字:");
if(sc.hasNextInt()) {
int inum2 = sc.nextInt();
System.out.println("输入的是int型值:" + inum2);
}else {
System.out.println("输入的类型不是int型");
}
//从键盘输入byte型值
System.out.println("输入一个byte型值");
byte b = sc.nextByte();
System.out.println("输入的byte值为:" + b);
//从键盘输入short型值
System.out.println("输入一个short型值");
short s = sc.nextShort();
System.out.println("输入的short值为:" + s);
//从键盘输入long型值
System.out.println("输入一个long型值");
long l = sc.nextLong();
System.out.println("输入的long值为:" + l);
//从键盘输入float型值
System.out.println("输入一个float型值");
float f = sc.nextFloat();
System.out.println("输入的float值为:" + f);
//从键盘输入double型值
System.out.println("输入一个double型值");
double d = sc.nextDouble();
System.out.println("输入的double值为:" + d);
}
}
展示效果:
键盘输入字符串型:String
/*输入String型*/
public class InputStringDemo {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
//nextLine形式输入String值
System.out.println("输入一个字符串");
System.out.println(sc.hasNextLine()); //判断是否有下一行
String str = sc.nextLine();
System.out.println("输入的String值为:" + str);
//next形式输入String值
System.out.println("再输入一个字符串");
System.out.println(sc.hasNext()); //判断是否有非空字符
String string = sc.next();
System.out.println("输入的String值为:" + string);
}
}
展示效果:
۵ has xxxx是检查输入是否符合该形式,返回值是boolean型;next xxx是以该形式读取输入的值
۵ 采用has xxxx的话,后面也要用next xxxx。比如前面用hasNextLine,那么后面要用 nextLine 来处理输入
hasNext与hasNextLine的区别:
۵ hasNext是检查是否有非空字符
۵ hasNextLine用于检查控制台输入或者读取文本文件时的输入扫描器(java.util.Scanner类)扫描,当扫描到存在下一行时,hasNextLine返回true,没有下一行输入或者文本文件没有下一行时,返回false
next与nextLine的区别:
۵ next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或等视为分隔符或结束符,简单来说next方法不能得到带空格的字符串
۵ nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
键盘输入字符型:char
public class charDemo {
public static void main(String args[]) {
//输入char字符:实际上就是String字符串取第一个字符
System.out.println("输入一个字符:");
char c1 = sc.next().charAt(0);
System.out.println(c1);
System.out.println("输入一个字符:");
char c2 = sc.next().toCharArray()[0];
System.out.println(c2);
System.out.println("输入一个字符:");
char c3 = sc.next().charAt(1);
System.out.println(c3);
}
}
展示效果:
۵ Java中没有单独定义输入char型变量的方法,char型变量的输入是通过String类的charAt(index)或toCharArray()[index]方法来实现,建议使用charAt(0)
Scanner方法摘要
本博客与CSDN博客༺ཌ༈君☠纤༈ད༻同步发布
Java基本语法--控制台输入(Scanner类)的更多相关文章
- java 监听控制台输入
分享一下我写的java监听控制台输入并可以给出响应的功能. 很多时候需要监听控制台的输入内容,相当于信号监听,根据输入的内容做出相应的动作,这里给出我的一个简单实现. 要注意的是:监听得到的消息中前后 ...
- Java面向对象 第2节 Scanner 类和格式化输出printf
§Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 1.创建 Scanner 对象的基本语法:Scanner s = ...
- Java入门 - 语言基础 - 21.Scanner类
原文地址:http://www.work100.net/training/java-scanner.html 更多教程:光束云 - 免费课程 Scanner类 序号 文内章节 视频 1 概述 2 使用 ...
- Java基础语法—数据输入
我们可以通过 Scanner 类来获取用户的输入.使用步骤如下: 1.导包.Scanner 类在java.util包下,所以需要将该类导入.导包的语句需要定义在类的上面. import java.ut ...
- Java中从控制台输入的三种方式
我们最熟悉的从控制台读取一个字符或者一个字符串都知道用Scanner,那么除了Scanner还有没有其他的呢,答案是有的,我们来看看. System.in.read() System.in.read( ...
- Java基础语法<七> 对象与类
笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 1. 类之间的关系 依赖 users– a 是一种最明显的.最常见的关系.如果一个类的方法操作另一个类的对象 ...
- Java基础语法<七> 对象与类 封装
笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 1. 类之间的关系 1.1 依赖 users– a 是一种最明显的.最常见的关系.如果一个类的方法操作另一个 ...
- java——获取从控制台输入的数据的方法
一.使用标准输入串System.in System.in.read(); //一次只读入一个字节数据,但是我们往往希望获得的是一个字符串或者一组数字 二.使用Scanner获得一个字符串或一组 ...
- Java(114-132)【Scanner类、Random类、ArrayList类】
1.API概述和使用步骤 应用程序编程接口.Java的API是一本程序员的字典,学会查询 2.Scanner 概述及其API文档 键盘输入 类都是大写的Scanner,关键字是小写的public 3. ...
随机推荐
- Hibernate(六)--缓存策略
缓存: 缓存就是数据库数据在内存中的临时容器,包括数据库数据在内存中的临时拷贝,它位于数据库与数据库访问中间层,ORM在查询数据时,首先会根据自身的缓存管理策略,在缓存中查找相关数据,如果发现所需的数 ...
- 定时器_在.net core3.0 webapi中添加自定义定时器功能
前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...
- 如何修改Tomcat运行时jvm编码
问题: 最近在部署项目的时候出现数据乱码的情况,经过一番查看项目都是用的UTF-8编码格式,数据也是,但是经过调用接口传给对方就乱码了. 由于是部署在Windows环境下,Windows默认编码GBK ...
- 安装Nginx到Linux(源码)
运行环境 系统版本:无 软件版本:无 硬件要求:无 安装过程 NGINX官方提供源码包的下载,NGINX有两个版本Mainline(主线)版和Stable(稳定)版.主线版本我们可以理解为是开发版本, ...
- 并发编程之J.U.C的第一篇
并发编程之J.U.C AQS 原理 ReentrantLock 原理 1. 非公平锁实现原理 2)可重入原理 3. 可打断原理 5) 条件变量实现原理 3. 读写锁 3.1 ReentrantRead ...
- 剑指offer-面试题4-二维数组中的查找-数组
/* 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. */ /* 解题 ...
- AE神奇插件TypeMonkey—抖音点赞100W+的文字视频特效是如何做出来的?
现在最火的东西,短视频必须要拥有姓名啦,抖音这些短视频平台风头正盛,我们也常常在上面看到一些文字动画Vlog,看着并不复杂,但是有些却有上百万的点击量,今天介绍的一款神奇插件——TypeMonkey, ...
- [P5748] 集合划分计数 - 生成函数,NTT
求 \(10^5\) 以内的所有贝尔数:将 \(n\) 个有标号的球划分为若干非空集合的方案数 Solution 非空集合的指数生成函数为 \(F(x)=e^x-1\) 枚举一共用多少个集合,答案就是 ...
- Python学习笔记--协程asyncio
协程的主要功能是单线程并发运行 假设有3个耗时不一样的任务.看看协程的效果. 先来看没有使用协程情况: #!/usr/bin/python3 # -*- coding:utf-8 -*- import ...
- go cap和len的区别
首先要搞清楚容量和长度的区别: 容量是指底层数组的大小,长度指可以使用的大小 容量的用处在哪?在与当你用 appen d扩展长度时,如果新的长度小于容量,不会更换底层数组,否则,go 会新申请 ...