Scanner类的使用

Scanner类的使用

(接受键盘输入)

java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地。

【代码示例】

 1 public static void main(String[] args) {
 2         test01();
 3         test02();
 4     }
 5
 6     public static void test02() {
 7         Scanner s=new Scanner(System.in);
 8         System.out.println("请输入一个加数:");
 9         int a=s.nextInt();
10         System.out.println("请输入被加数:");
11         int b= s.nextInt();
12         int sum=a+b;
13         System.out.println("计算结果,和为:"+sum);
14     }
15
16     public static void test01() {
17         System.out.println("请输入:");
18         Scanner s=new Scanner(System.in); //System.in:键盘输入
19         String str=s.next(); //程序运行到next会阻塞,等待键盘的输入!next返回的是一个字符串
20         System.out.println("刚刚键盘输入了:"+str);
21     }

一、扫描控制台输入

这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了。
当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。

/**
* 扫描控制台输入
*
* @author leizhimin 2009-7-24 11:24:47
*/
public class TestScanner {
        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                System.out.println("请输入字符串:");
                while (true) {
                        String line = s.nextLine();
                        if (line.equals("exit")) break;
                        System.out.println(">>>" + line);
                }
        }
}

控制台输出:

请输入字符串:
234
>>>234
wer
>>>wer
bye
>>>bye
exit 

Process finished with exit code 0

二、如果说Scanner使用简便,不如说Scanner的构造器支持多种方式,构建Scanner的对象很方便。

可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。

三、Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符

使用默认的空格分隔符:

  public static void main(String[] args) throws FileNotFoundException {
                Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf    ......asdfkl    las");
//                s.useDelimiter(" |,|\\.");
                while (s.hasNext()) {
                        System.out.println(s.next());
                }
        }

控制台输出:

123
asdf
sd
45
789
sdf
asdfl,sdf.sdfl,asdf
......asdfkl
las 

Process finished with exit code 0

将注释行去掉,使用空格或逗号或点号作为分隔符,输出结果如下:

123
asdf
sd
45
789
sdf
asdfl
sdf
sdfl
asdf 

asdfkl 

las 

Process finished with exit code 0
时间: 2024-10-06 00:45:26

Scanner类的使用的相关文章

java中scanner类的用法

在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分.于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法.这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析.借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器.

java之Scanner类

1.Scanner类概述 Scanner类概述:JDK5以后用于获取用户的额键盘输入 构造方法:public Scanner(InputStream source) 2.Scanner类的成员方法 基本格式: hasNextXxx()判断是否还有下一个输入项,其实Xxx可以是Int,Double等.如果需要判断是否包含下一个字符串,则可以省略Xxx. nextXxx()获取下一个输入项.Xxx的含义和上一个方法中的Xxx相同. 默认情况下,Scanner使用空格,回车等作为分隔符 常用方法: p

JAVA IO:Scanner类

使用Scanner类接收输入数据. JAVA提供了专门的输入数据类,此类可以完成BufferedReader类的功能,也可以方便的对输入数据进行验证,此类存放于JAVA.UTILL包中. 常用方法如下: 此类不在java.io中,而在java.utill类,所以此类是一个工具类. 1,使用Scanner接收键盘输入数据 package 类集; import java.util.* ; public class ScannerDemo01{ public static void main(Stri

Java API ——Scanner类

1.Scanner类概述 JDK5以后用于获取用户的键盘输入,一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器.Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配.然后可以使用不同的 next 方法将得到的标记转换为不同类型的值. 2.现在使用的构造方法 public Scanner(InputStream source) 3.Scanner类的成员方法 1)基本格式 hasNextXxx()  判断是否还有下一个输入项,其中Xxx可以是Int,Dou

Java用Scanner类获取用户输入

用Java编写程序时,有些数据需要用户输入,这个时候需要调用java提供的Scanner类,这个类在包java.util下,比如求一个矩形的面积,简单的看一下用法: 1 import java.util.Scanner; 2 public class Javashuru { 3 //Java获取用户输入,使用Scanner类,位于java.util包中 4 public static void main(String[] args){ 5 //创建Scanner对象 6 Scanner inpu

Scanner类的.next()和.hashNext()方法

使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流 .字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同的构造器可接受文件.输入流.字符串作为数据,用于从文件.输入流.字符串中解析数据. Scanner主要提供了两个方法来扫描输入: (1)   hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int.Long等代表基本数据类型的字符串.如果需要判断是否包含下一个字符串,可以省略Xxx.

Scanner类 (读取命令行输入的数字)

1 //Fig. 2.7: Addition2.java ,命令行版加法 [JAVA大学基础教程_第六版 第43页] 2 3 package first; 4 5 import java.util.Scanner; //program uses class Scanner 6 7 public class Addition2 { 8 public static void main(String args[]){ 9 Scanner input = new Scanner(System.in);

Java中的Scanner类

java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入.创建Scanner对象的基本语法: Scanner s = new Scanner(System.in); 在读取前,一遍需要hasNext和hasNextLine判断是否还有输入的数据.它们的区别为: next(): 1.一定要读取到有效字符后才可以结束输入. 2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符.

java键盘输入 scanner类

平常工作中较少与键盘进行直接交互,但在一些测试方法中,需要有这样的功能. 一.可以用System.in.read()方法读取单个字符,但因为字符大小的限制,实际使用中有很多不方便的地方. 示例: char a = (char) System.in.read(); System.out.println(a); 需注意返回的是字符对应的ASCII码.要使用需要进行进一步处理. 二.可以将控制台输入的当做字符串处理,需要使用BufferedReader类以及InputStreamReader类. 示例