scanner 是 java 中的一个常用类,用来读取控制台或文件中的输入数据。它提供了一种简单的方式来解析基本类型和字符串,并支持对正则表达式进行匹配。
Scanner 类位于 java.util 包中,因此在编写程序时需要 import 该包。在开始使用 Scanner 之前,我们需要创建一个 Scanner 对象来访问输入源。
创建 Scanner 对象的语法为:
Scanner scanner = new Scanner(System.in);登录后复制
上面的代码创建了一个 Scanner 对象,可以使用它来读取标准输入流中的数据。除此之外,我们还可以使用其他的输入流来创建 Scanner 对象。
下面我们来看一些常用的 Scanner 操作。
读取字符串我们可以使用 next() 方法来读取一个字符串,它会读取控制台输入中的下一个单词,并返回一个字符串。
Scanner scanner = new Scanner(System.in);System.out.print("请输入一个字符串:");String str = scanner.next();System.out.println("你输入的字符串是:" + str);登录后复制
上面的代码运行结果:
请输入一个字符串:Hello World!你输入的字符串是:Hello登录后复制
上述代码只读取了输入中的第一个单词"Hello",因为 next() 方法默认会使用空格分隔输入的字符串,所以它只会读取输入中的第一个单词。如果需要读取整个字符串,可以使用 nextLine() 方法。
读取整数我们可以使用 nextInt() 或 nextLong() 来读取一个整数或长整数,如果输入的不是数值类型,会抛出 InputMismatchException 异常。
Scanner scanner = new Scanner(System.in);System.out.print("请输入一个整数:");int num = scanner.nextInt();System.out.println("你输入的整数是:" + num);登录后复制
上面的代码运行结果:
请输入一个整数:123你输入的整数是:123登录后复制读取浮点型数据
我们可以使用 nextFloat() 或 nextDouble() 来读取一个浮点型数据。如果输入的不是浮点型数据,会抛出 InputMismatchException 异常。
Scanner scanner = new Scanner(System.in);System.out.print("请输入一个浮点数:");float f = scanner.nextFloat();System.out.println("你输入的浮点数是:" + f);登录后复制
上面的代码运行结果:
请输入一个浮点数:3.14你输入的浮点数是:3.14登录后复制读取布尔类型数据
我们可以使用 nextBoolean() 方法来读取一个布尔类型数据,如果输入的值不是 true 或 false,会抛出 InputMismatchException 异常。
Scanner scanner = new Scanner(System.in);System.out.print("请输入一个布尔值(true/false):");boolean b = scanner.nextBoolean();System.out.println("你输入的布尔值是:" + b);登录后复制
上面的代码运行结果:
请输入一个布尔值(true/false):true你输入的布尔值是:true登录后复制读取正则表达式
Scanner 还提供了一个 findInLine() 方法来读取正则表达式。该方法可以读取控制台输入中第一次出现的正则表达式,并返回一个匹配的字符串。
Scanner scanner = new Scanner(System.in);System.out.print("请输入一个正则表达式:");String pattern = scanner.findInLine("\d+");System.out.println("你输入的正则表达式匹配的字符串是:" + pattern);登录后复制
上面的代码运行结果:
请输入一个正则表达式:Hello 123 World!你输入的正则表达式匹配的字符串是:123登录后复制
以上就是 Scanner 类的一些常用操作,希望对大家学习 Java 有所帮助。
以上就是Java中的Scanner操作详解的详细内容,更多请关注易企推科技其它相关文章!
本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/1152033.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!