Java基础之Scanner类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q394895302/article/details/63687637

  Scanner主要是用来简化文本扫描,最实用的地方表现在获取控制台输入。

  在使用这个类之前要用new Scanner(System.in)实例化一个Scanner对象,才能调用类中的方法。

  功能1:扫描控制台输入的数据,可接收的数据类型有:整数,字符串,浮点数等,具体方法如下面所示:

    1、nextInt()   接收控制台输入的int型数据;

    2、nextDouble()   接收控制台输入的double型数据;

    3、nextFloat()  接收控制台输入的float型数据;

    4、next()  接收控制台输入的字符串数据,以空格键作为两个字符串间间隔的标志;

    5、nextLine()  接收控制台输入的以回车键结束的字符串数据;

  部分方法运用:

 1 System.out.println("请输入一个数字:");
 2 Scanner sc = new Scanner(System.in);
 3 int number = sc.nextInt();//接收整型数据
 4 
 5 System.out.println("请输入一段英文字符串:");
 6 String str = sc.next();//接收字符串
 7 
 8 System.out.println("请输入一个成绩:");
 9 double score = sc.nextDouble();//接收浮点型数据
10 
11 //当要再次使用nextLine的时候得重新构建一个新的Scanner对象如:
12 System.out.println("请输入一段话:");
13 Scanner input = new Scanner(System.in);
14 String nextStr = input.nextLine();

  Scanner的其他部分方法:

    1、delimiter() 返回此 Scanner 当前正在用于匹配分隔符的 Pattern;

    2、hasNext()  判断扫描器中当前扫描位置后是否还存在下一段;

    3、hasNextLint()  如果在此扫描器的输入中存在另一行,则返回 true

  等。

  

 1 public class readhuman {
 2     private static void readfile(String filename) {
 3         try {
 4             Scanner scanner = new Scanner(new File(filename));
 5             scanner.useDelimiter(System.getProperty("line.separator"));
 6             while (scanner.hasNext()) {
 7                 parseline(scanner.next());
 8             }
 9             scanner.close();
10         } catch (FileNotFoundException e) {
11             System.out.println(e);
12         }
13     }
14 
15     private static void parseline(String line) {
16         Scanner linescanner = new Scanner(line);
17         linescanner.www.gzlij.com useDelimiter(",");
18         //可以修改usedelimiter参数以读取不同分隔符分隔的内容
19         String name = linescanner.next();
20         int age = linescanner.nextInt();
21         String idate = linescanner.next();
22         boolean iscertified = linescanner.nextBoolean();
23         System.out.println("姓名:"+name+" ,年龄:"+ age+" ,入司时间:"+ idate+" ,验证标记:"+iscertified );
24     }
25 
26     public static void main(String[] args) {
27         if (args.length != 1) {
28             System.err.println("usage: java readhuman file location");
29             System.exit(0);
30         }
31         readfile(args[0]);
32     }
33 }
34  运行结果:C:\java>java readhuman hrinfo.txt姓名:老赵 ,年龄:28 ,入司时间:feb-01
35  ,验证标记:true姓名:小竹 ,年龄:22 ,入司时间:dec-03 ,验证标记:false姓名:阿波 ,年龄:21 ,入司时间:dec-03
36  ,验证标记:false姓名:凯子,年龄:25 ,入司时间:dec-03 ,验证标记:true

 

   

 

猜你喜欢

转载自blog.csdn.net/q394895302/article/details/63687637