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);
   }
}

java中Scanner输入用法实例

代码优化:

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();
}
}

java中Scanner输入用法实例

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

标签:java,scanner,输入
0
投稿

猜你喜欢

  • mybatis foreach标签的使用详解

    2023-05-07 21:12:09
  • Android开发之菜单(menu)用法实例分析

    2022-06-22 23:13:28
  • Java 10 局部变量类型推断浅析

    2023-11-25 06:24:13
  • java新特性之for循环最全的用法总结

    2022-07-08 22:14:51
  • C#中实现Json序列化与反序列化的几种方式

    2021-11-06 01:31:07
  • Java 多线程Synchronized和Lock的区别

    2023-08-14 11:39:09
  • Java编程用栈来求解汉诺塔问题的代码实例(非递归)

    2023-01-13 21:41:25
  • 条件数据库Android:sqllite的简单使用

    2023-07-11 15:39:24
  • Android开发中计算器的sin、cos及tan值计算问题分析

    2023-11-11 08:21:40
  • 使用Springboot搭建OAuth2.0 Server的方法示例

    2023-01-28 07:19:16
  • Android编程实现应用自动更新、下载、安装的方法

    2021-11-15 11:21:39
  • unity将图片转换成字体的方法

    2023-02-16 22:51:09
  • Android游戏开发之黑白棋

    2023-05-24 13:39:03
  • Java数据结构之顺序表和链表精解

    2021-07-01 14:30:39
  • Java中使用HashMap时指定初始化容量性能解析

    2023-01-01 11:05:27
  • c#高效率导出多维表头excel的实例代码

    2022-10-17 04:45:49
  • Java char[]数组转成String类型详细介绍

    2021-09-27 22:18:49
  • Android编程实现Toast只显示最后一条的方法

    2023-12-13 11:54:49
  • spring AOP的After增强实现方法实例分析

    2023-06-10 13:52:06
  • Android ListView ImageView实现单选按钮实例

    2023-09-19 20:25:39
  • asp之家 软件编程 m.aspxhome.com