首页 > 其他分享 >蓝桥杯备考随手记: Scanner 类中常用方法

蓝桥杯备考随手记: Scanner 类中常用方法

时间:2024-04-05 20:01:15浏览次数:26  
标签:读取 System 蓝桥 类中 scanner new 输入 Scanner

Scanner类是Java中用于从标准输入、文件或其他输入流中读取数据的类。它提供了一系列方法来读取不同类型的数据,例如整数、浮点数、字符串等。

在Java中,Scanner类位于java.util包中,使用时需要先导入该包。

使用Scanner类需要先创建一个Scanner对象,并将要读取的输入流传递给它的构造函数。

常见的用法有:

  1. 从标准输入读取数据:
    Scanner scanner = new Scanner(System.in);
    int num = scanner.nextInt();  // 读取一个整数
    double d = scanner.nextDouble();  // 读取一个浮点数
    String str = scanner.next();  // 读取一个字符串
    
  2. 从文件中读取数据:
    Scanner scanner = new Scanner(new File("data.txt"));
    int num = scanner.nextInt();  // 读取一个整数
    double d = scanner.nextDouble();  // 读取一个浮点数
    String str = scanner.next();  // 读取一个字符串
    

下面介绍一些常用的方法:

  1. next() 用于读取并返回输入流中的下一个字符串。该方法会自动忽略输入中的空白字符,并返回以空白字符分隔的字符串。

    Scanner scanner = new Scanner(System.in);
    String str = scanner.next();
    
  2. nextLine() 用于读取并返回输入流中的下一行字符串。该方法会读取直到遇到换行符为止,并返回包括换行符在内的整行字符串。

    Scanner scanner = new Scanner(System.in);
    String line = scanner.nextLine();
    
  3. nextInt() 用于读取并返回输入流中的下一个整数。该方法会自动跳过输入中的空白字符,并返回一个整数。

    Scanner scanner = new Scanner(System.in);
    int num = scanner.nextInt();
    
  4. nextDouble() 用于读取并返回输入流中的下一个浮点数。该方法会自动跳过输入中的空白字符,并返回一个浮点数。

    Scanner scanner = new Scanner(System.in);
    double d = scanner.nextDouble();
    
  5. hasNext() 用于判断输入流中是否还有下一个元素,如果有则返回true,否则返回false。

    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNext()) {
        String str = scanner.next();
    }
    
  6. hasNextInt() 用于判断输入流中下一个元素是否为整数,如果是则返回true,否则返回false。

    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNextInt()) {
        int num = scanner.nextInt();
    }
    
  7. hasNextDouble() 用于判断输入流中下一个元素是否为浮点数,如果是则返回true,否则返回false。

    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNextDouble()) {
        double d = scanner.nextDouble();
    }
    
  8. useDelimiter():设置分隔符。默认情况下,Scanner使用空白字符(包括空格、Tab键、换行符等)作为分隔符。可以使用useDelimiter()方法将其修改为其他分隔符。
    Scanner scanner = new Scanner(System.in);
    scanner.useDelimiter(",");
    String str = scanner.next();  // 以逗号作为分隔符读取下一个字符串
    

在使用Java中的Scanner类时,需要注意以下几点:

  1. Scanner类会自动跳过输入中的空白字符(如空格、Tab键、换行符等),直到读取到有效的数据为止。

  2. 换行符被视为输入结束的标志,因此在使用next()方法读取完一个输入后,需要使用nextLine()方法来读取下一行输入。

  3. 使用完Scanner类后,应调用其close()方法来释放资源,特别是在读取文件时,要及时关闭文件流。

  4. 在使用Scanner类读取输入时,应确保输入格式正确,以避免出现异常。可以使用hasNextXxx()方法进行判断,以确保输入流中的下一个元素是期望的类型。

总之,在使用Scanner类时,要注意处理空白字符、换行符,及时关闭Scanner对象,确保输入格式正确,以提高程序的健壮性和可靠性。

标签:读取,System,蓝桥,类中,scanner,new,输入,Scanner
From: https://blog.csdn.net/DaPiCaoMin/article/details/137406803

相关文章

  • 蓝桥杯_省_21B_E_路径(c++)
    题目描述小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图中的最短路径。小蓝的图由2021个结点组成,依次编号1至2021。对于两个不同的结点a,b,如果a和b的差的绝对值大于21,则两个结点之间没有边相连;如果a和b的差的绝对值小于等于21,则两个点之间......
  • 全球变暖蓝桥杯2018省赛真题
    全球变暖蓝桥杯2018省赛真题DFS大法全球变暖#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongboolflag;chara[1010][1010];intcnt,n,ans=0,pre_ans=0,d[4][2]={1,0,-1,0,0,1,0,-1};voiddfs(intx,inty){if(x>=n||x<0||y>=n||y<0||a......
  • 蓝桥杯备考随手记: 常用的三种排序算法(冒泡排序、插入排序、选择排序)
    1.冒泡排序(BubbleSort)冒泡排序是一种简单直观的排序算法,在待排序序列中不断地交换相邻两个元素的位置,通过多次遍历,将最大(或最小)的元素逐渐向右(或左)移动到正确的位置,直到整个序列有序。冒泡排序的基本思想如下:从序列的第一个元素开始,比较相邻两个元素的大小。如果前一个元......
  • 第15届蓝桥STEMA测评真题剖析-2024年3月10日Scratch编程初中级组
    [导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第180讲。第15届蓝桥第5次STEMA测评,这是2024年3月10日举办的STEMA,比赛仍然采取线上形式。这是Scratch初/中级组真题,试题包括两种题型,分别是选择题和编程创作......
  • 蓝桥杯,省赛,dfs专题,地宫取宝,小朋友崇拜圈,飞机降落
    #include<bits/stdc++.h>usingnamespacestd;intn,m,k;inta[55][55];//输入所给数组值所分配的内存空间intdp[55][55][15][15];//开创记忆化的存储空间//因为只进行向下走和向右走,所有写成这个样子,不明白的可以在了解以下笛卡尔积,向下是x轴,向右是y轴(一般情况下)int......
  • P8687 [蓝桥杯 2019 省 A] 糖果
    原题链接题解二进制表示每包糖果包含的味道,因为有一种拼接的感觉,然后背包dp,注意这里每个材料不止只能取一个code#include<bits/stdc++.h>usingnamespacestd;intdp[1<<22]={0},candy[105]={0};constintinf=2e9;intmain(){intn,m,k;cin>>n>>m>>k;......
  • [蓝桥杯 2022 国 A] 环境治理(二分 + 弗洛伊德)
        通过题目描述,我们得知如果枚举所有的天数,就不会通过所有的样例,因此我们可以通过二分来列举符合要求的天数,并且我们知道两个城市之间衡量的灰尘度标准就是灰尘度总和最小的那一段路径,也就是说我们需要寻找到权值和最低的那条路径,而我们知道每两个点之间都有路径......
  • 【蓝桥杯选拔赛真题56】C++求位数 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编
    目录C++求位数一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、推荐资料C++求位数第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题一、题目要求1、编程实现给定一个正整数N(1<N<10^8),输出N为几位数2、......
  • PYTHON蓝桥杯——每日一练(简单题)
    题目查找整数给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(......
  • day18java学习打卡:类中属性的使用
    /* *类中属性的使用: *  *属性(成员变量) vs 局部变量 *1.相同点: * 1.1定义变量的格式:数据类型变量名=变量值; * 1.2先声明,后使用 * 1.3变量都有其对应的作用域 *  *  *2.不同点: * 2.1在类中声明的位置不同 *   属性:直接......