首页 > 编程语言 >java流程控制01.Scanner

java流程控制01.Scanner

时间:2023-08-22 22:12:37浏览次数:43  
标签:01 java scanner System next 输入 Scanner

用户交互Scanner

  • Scanner交互,在之前的基本语法学习中,并没有实现程序和人的交互,但是Java给我们提供了一个工具类,我们可以获取用户的输入。java.util.Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入。
  • 基本语法:
Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()和nextLine()方法获取输入的字符,在读取前我们一般需要用hasNext()和hasNextLine()来判断是否还有输入的数据
package 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()){
            //使用next方法接收
            String str = scanner.next();
            System.out.println("输入的内容为:"+str);
        }
        //凡是属于IO流的类如果不关闭,会一直占用资源,用完就关掉
        scanner.close();
    }
}

此时程序还没运行完,在等待我们输入

输入后:

可以看到,尽管已经输出了,但是输出的和我们输入的内容不一样,只输出了hello,这是因为next遇到空格会停,这时就需要另一个方法来判断是否后续还有输入内容

package Scanner;

import java.util.Scanner;
public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);//从键盘接收数据
        System.out.println("使用next来接收:");
        //判断是否还有输入
        if (scanner.hasNextLine()){
            String scr = scanner.nextLine();
            System.out.println("输出内容为:"+scr);
        }
        scanner.close();
    }
}

输入后:

  • next():
  1. 一定要读取到有效字符后才可以结束输出
  2. 对输入有效字符前遇到的空白,next()方法会自动去掉
  3. 只有输入有效字符后的输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串
  • nextLine():
  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
  2. 可以获得空白

标签:01,java,scanner,System,next,输入,Scanner
From: https://www.cnblogs.com/shiweirui/p/17649829.html

相关文章

  • [DS记录] P3203 [HNOI2010] 弹飞绵羊
    (题目传送门)虽然是\(\rmLCT\)板子,但用来做分块入门如果没有修改操作,可以\(O(n)\)求出每个点的答案对于每个块里的点,预处理出它跳出这个块的步数,那么查询时就可以\(O(1)\)跳过这些块,查询的复杂度\(O(\sqrt{n})\)修改一个点时,也就是\(O(B)\)暴力修改即可令\(B=\sqrt{......
  • 深度理解JavaScript对象:从基础到高级
    一:概述在JavaScript中,对象是一种非常重要且强大的数据类型。熟练掌握对象的特性,既可以提高编码效率,又能编写出更加灵活和可维护的代码。本篇文章将从基础到高级,深入探讨JavaScript对象的各个方面,帮助读者全面理解对象的概念,并为实际应用中的场景提供示例说明。二:javaScript对象的......
  • JavaScript regular expression in Actions All In One
    JavaScriptregularexpressioninActionsAllInOneJavaScript正则表达式实战demos在字符串中匹配多组数据conststr='lines[0][config][options][343]';constreg=/\[([0-9]+|[a-z]+|[A-Z]+)\]/g;constgroups=[];str.replaceAll(reg,group=>{letv......
  • [USACO JAN 2011]交通灯 题解
    题意很清晰,直接跑SPFA求最短路。只是我们在松弛操作时,需要注意从\(u\)是否可以到达\(v\)。怎么判断呢?请移步下面三个部分。Part1先解释一下,下面点\(i\)的信息分别为以下变量:color表示颜色,1表示蓝色,0表示紫色num表示初始状态持续时间t1表示蓝色状态持续时间......
  • Java反射Refletion
    什么是反射?反射(Refletion)就是:加载类,并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等)反射的作用1.可以在运行时得到一个类的全部成分然后操作2.可以破坏封装性。(很突出)3.也可以破坏泛型的约束性。(很突出)4.更重要的用途是适合:做Java高级框架5.......
  • 网络编程学习01
    一、进程间通信-socket套接字(很重要,函数啥的都要求要能背)基本特征:socket是一种接口技术,被抽象了一种文件的操作,可以让同一计算机中的不同进程之间通信,也可以让不同计算机中的进程之间通信(网络通信)本地进程间通信编程模型:进程A进程B创建so......
  • Autocad2014下载安装-Autocad2014功能介绍
    Autocad2014注册机是一款专为Autocad2014设计软件提供注册的辅助软件。用户使用Autocad2014zcj可以将未经注册激活的Autocad2014软件成功注册并激活。这款软件操作简单,易于使用,拥有广泛的受众群体,如建筑师、工程师和建筑专业人员等,借助它,可以准确地和客户共享设计数据,体验本地DWG......
  • Java学习io流总结
    一、IO的分类按照流向分输入流Input输出流Output按照传输数据的类型来分字节流字节输入:InputStream字节输出:OutputStream字符流字符输入流:Reader字符输出流:Writer按照流连接的目标来分节点流:低级流-->程序(内存)直接连接源文件包装流:高级......
  • P3011 [USACO11JAN] Traffic Lights S
    P3011[USACO11JAN]TrafficLightsS目录P3011[USACO11JAN]TrafficLightsS题目题目描述输入输出格式输入格式输出格式题目描述输入格式输出格式样例#1样例输入#1样例输出#1思路code题目题目描述和FJ靠的最近的城市Kenosha市有\(M\)条道路。(编号为\(1-M\))连接着\(N......
  • C++学习day01
    C++学习day01一、C++介绍本贾尼.斯特劳斯特卢普,于1979年在贝尔实验室负责分析UNIX系统内核流量的分布情况时,特别希望有一种更加模块化的工具,于1979.10开始着手研发一款新的编程语言,在C语言的基础上增加了面向对象的机制,也就是C++,1983年完成了C++的第一个版本C++与C的关联和重要......