java中Scanner输入用法实例
作者:汪小霜 发布时间:2023-09-03 18:25:36
因为涉及到 io 流输入问题,如果不关闭会一直占用资源。所以使用过后要及时关闭,防止资源一直被占用。
Scanner在使用前要导入 java.util.Scanner 包
1.整数
描述:
输入一个整数,输出这个整数。
输入描述:
输入一个整数,范围在32位有符号整数范围内
输出描述:
输出这个整数
代码
nextInt() 方法是将输入信息的下一个标记扫描为一个 int。
hasNext()如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。 如果仍有元素可以迭代,则返回 true。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
// System.out.println("请输入一个整数");
Scanner sc = new Scanner(System.in);
int nume = sc.nextInt();
System.out.println(nume);
}
}
代码优化:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
// System.out.println("请输入一个整数");
Scanner sc = new Scanner(System.in);
if(sc.hasNext()){
int nume = sc.nextInt();
System.out.println(nume);
}
sc.close();
}
}
2.浮点数
描述
输入一个浮点数,输出这个浮点数。
输入描述:
输入一个浮点数
输出描述:
输出一个浮点数,保留三位小数
代码
%.3f 浮点型输出,保留三位小数
nextFloat() 将输入信息的下一个标记扫描为一个 float。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
if(sc.hasNext()){
float nume = sc.nextFloat();
//如何限制float的位数,String类中的format方法可以解决这个问题
System.out.println(String.format("%.3f",nume));
}
sc.close();
}
}
3.字符
描述
输入一个字符,输出这个字符。
输入描述:
输入一个字符,范围在ascii范围内
输出描述:
输出这个字符
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
if(sc.hasNext()){
String in = sc.nextLine();
System.out.println(in);
}
sc.close();
}
}
4.输入两个整数
描述
从键盘上输入三个整数,并尝试在屏幕上显示第二个整数。
输入描述:
一行输入 3 个整数,用空格隔开。
输出描述:
请输出第二个整数的值。
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] arr=new int[3];
if(sc.hasNext()){
for(int i = 0; i < 3; i++){
arr[i] = sc.nextInt();
}
System.out.println(arr[1]);
}
sc.close();
}
}
5.字符矩阵
描述
用键盘读入一个字符,然后在屏幕上显示用这个字符组成的 33 的矩形。
输入描述:
一行读入一个 char 类型的字符。
输出描述:
输出这个字符组成的 33 矩形。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//输入单字符,sc.next().charAt(0);
if(sc.hasNext()){
char in = sc.next().charAt(0);
for(int i = 0 ; i < 3 ; i++){
for(int j = 0 ; j < 3 ; j++){
System.out.print(in);
}
System.out.println();
}
}
sc.close();
}
}
6.字符菱形
描述
牛用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。
输入描述:
输入一个char类型字符
输出描述:
输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
char in = sc.next().charAt(0);
//上部分的行数,包括对角线
int n = 3;
//循环输出前半部分
for(int i = 1 ; i <= n; i++){
//输出每行前面的空格,并逐级减少,第一行两个,第二行一个,第三行0个
for(int j = 1; j <= n - i; j++){
System.out.print(" ");
}
//每行输出的字符个数是改行的2倍健1,2*i-1
for(int j = 1; j <= 2 * i - 1;j++){
System.out.print(in);
}
//每行的结尾要换行
System.out.println();
}
//循环输出后半部分
int m = n - 1;//后半部分的行数是前半部分行数减1,m=2
for(int i = 1; i <= m; i++){
//i=1时,是第四行,打印1个空格,3个字符
//i=2时,是第五行,打印0个空格,1字符个
//输出空格
for(int j = 1; j <= i; j++){
System.out.print(" ");
}
for(int j = 1; j <= 2*(m-i)+1 ; j++){
System.out.print(in);
}
System.out.println();
}
}
}
7.字符转 ASCII 码
描述
输入一个字符,输出该字符相应的ASCII码。
输入描述:
一行,一个字符。
输出描述:
一行,输出输入字符对应的ASCII码。
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
if(sc.hasNext()){
char in = sc.next().charAt(0);
System.out.println((int)in);
}
sc.close();
}
}
8.实现四舍五入
描述
将浮点数转换为整数类型,要求四舍五入。
输入描述:
随机输入的浮点数
输出描述:
四舍五入之后的整数
代码
round(float a)
返回最接近参数的 int。
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
if(sc.hasNextDouble()){
double in = sc.nextDouble();
System.out.println(Math.round(in));
}
sc.close();
}
}
9.成绩输入输出
描述
输入3科成绩,然后把三科成绩输出,成绩为整数形式。
输入描述:
一行,3科成绩,用空格分隔,范围(0~100)。
输出描述:
一行,把3科成绩显示出来,输出格式详见输出样
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] arr = new int[3];
if(sc.hasNext()){
for(int i = 0; i < arr.length; i++){
arr[i] = sc.nextInt();
} System.out.println("score1="+arr[0]+",score2="+arr[1]+",score3="+arr[2]);
}
sc.close();
}
}
10.学生基本信息输入输出
描述
依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。
数据范围:学号满足 1<= n <=20000000 ,各科成绩使用百分制,且不可能出现负数
输入描述:
学号以及3科成绩,学号和成绩之间用英文分号隔开,成绩之间用英文逗号隔开。
输出描述:
学号,3科成绩,输出格式详见输出样例。
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String nume = in.nextLine();
String[] id = nume.split(";");
String score = id[1];
String[] scores = score.split(",");
System.out.print("The each subject score of No. "+Integer.parseInt(id[0])+
" is " + String.format("%.2f",Float.parseFloat(scores[0]))+
", " + String.format("%.2f",Float.parseFloat(scores[1])) +
", " + String.format("%.2f",Float.parseFloat(scores[2])) +
"."
);
in.close();
}
}
11.按照格式输入并交换输出
描述
输入两个整数,范围-2的31次方~2的31次方-1,交换两个数并输出。
输入描述:
输入只有一行,按照格式输入两个整数,范围,中间用“,”分隔。
输出描述:
把两个整数按格式输出,中间用“,”分隔。
代码
nextLine() 接收 String 类型的输入
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String twoNums = sc.nextLine();
String[] nums = twoNums.split(",");
System.out.println(nums[0].substring(0,2) + nums[1].substring(2) + ","
+ nums[1].substring(0,2) + nums[0].substring(2));
sc.close();
}
}
12.大小写转换
描述
实现字母的大小写转换。多组输入输出。
输入描述:
多组输入,每一行输入大写字母。
输出描述:
针对每组输入输出对应的小写字母
代码
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){//表示是否有输入数据
char num = sc.next().charAt(0);
System.out.println((char)(num+32));
}
}
}
来源:https://blog.csdn.net/qq_44125965/article/details/125837376


猜你喜欢
- 个人详情页滑动到顶部最近产品提了个新需求,需要实现点击App内的某个按钮跳转到个人详情页并且滑动到顶部,个人详情页的页面交互稍微复杂,技术角
- EasyCode 插件EasyCode 插件 是一款根据表结构生成代码的很方便的Idea插件, 强烈推荐. 并且可以自定义模板来控制生成的类
- 算法文章,总是带给我们无穷的思考和兴趣,一个问题,多种解决方法,看你如何去思考它,对于标题所引出的问题,我觉得,使用递归是比较有效的方法,当
- 前言之前写过几篇关于输入系统的文章,但是还没有写完,后来由于工作的变动,这个事情就一直耽搁了。而现在,在工作中,遇到输入系统相关的事情也越来
- 一、时间的单位转换1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微秒(μs)&nb
- 栅栏类似闭锁,但是它们是有区别的.1.闭锁用来等待事件,而栅栏用于等待其他线程.什么意思呢?就是说闭锁用来等待的事件就是countDown事
- 本文给大家分享Android里应用版本更新功能这一块的实现。一个好的应用软件都是需要好的维护,从初出版本到最后精品,这个过程需要版本不停的更
- 实现方式通过挨个罗列的方式一次复制子对象是非常耗费人力的,如果子对象是引用类型,则还要需要考虑是否对子对象进一步深拷贝。实际应用中,一个类如
- 本文实例讲述了Android开发实现跟随手指的小球效果。分享给大家供大家参考,具体如下:配置DrawView类用于绘制小球public cl
- 这篇文章主要介绍了基于Java向zip压缩包追加文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 一、java final基本概念:1、主要用于修饰类、属性和方法:被final修饰的类不可以被继承被final修饰的方法不可以被重写被fin
- 项目初始流程:首先说一下pom.xml文件的依赖: <dependencies><!-- junit 测试 -->
- java 抛出异常处理的方法为了避免调用的人不知道有异常,才抛出异常的,所以是谁掉用的久在哪里处理。说的对吗对.1、throws关键字通常被
- 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示U
- 参考答案java.sql.Date 是 java.util.Date 的子类java.util.Date 是 JDK 中的日期类,精确到时、
- 泛型的简介1、为什么要使用泛型?一般使用在集合上,比如现在把一个字符串类型的值放入到集合里面,这个时候,这个值放到集合之后,失去本身的类型,
- 实体类时间格式化java 实体类 时间格式化注解@JsonFormat(pattern = "yyyy-MM-dd HH:mm:s
- 1.应用实例需求: 演示 Spring-Boot 通过表单注册用户,并支持上传图片2.代码实现代码实现-文件上传创建 templates/u
- Spring之Bean的基本概念大家都知道Spring就是一个大型的工厂,而Spring容器中的Bean就是该工厂的产品.对于Spring容
- Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤记录从打包到服务器配置上线全流程安装docker详细步骤请戳这里