Scanner

Scanner类

 public final class Scannerextends Objectimplements   
   Iterator<String>

  一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配

  例如
  Scanner sn=new Scanner(System.in);
    String s=sn.next();
    System.out.println(s);
 
  一定要读取到有效字符后才会结束输入
  对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符 
  next() 不能得到带有空格的字符串 
   
   
使用nextLine
     
        Scanner sc=new Scanner(System.in);
        String s = sc.nextLine();
        System.out.println(s); 
        
        以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符
        可以输出空白格

输入int ,float
就是使用Scanner的对象调用nextint,nextfloat方法
其他几个类型也是类似,

直到遇到相符合的值,才会退出输入,遇到不符的会报错,遇到空格会删除,

当然我们也可以使用对应输入类型的迭代方法,使之可以一直输入,除非遇到非对应的类型,会结束输入,但不会报错
 如
  Scanner sc = new Scanner(System.in);
    while (sc.hasNextInt()) {
        int i = sc.nextInt();
        System.out.println(i);
    }
    所以基本数据类型都可以
其他的亦是如此

读取文本的内容

  Scanner sc = new Scanner(new File("C:\\Users\\gww15\\Desktop\\ss.txt"));
    while (sc.hasNextLong()) {
        long aLong = sc.nextLong();
        System.out.println(aLong);    这里,只是举例,其他的数据类型也可以
    }  
      此时可以一直读取,遇到空格会删除,文章开头讲过,默认空格分隔,所以读数是按空格来分的,遇到不符的数据类型,不会报错,但会结束输入,
 如果不迭代的话,将会读取到一个相符类型的值后结束输入,如果读到了不相符的将会报错,java.util.InputMismatchException  输入不匹配 
 
其他类型亦是如此,只不过使用的方法不相同,都有何类型对应的方法

不使用默认的分隔符

   之前我们说了,默认使用的是空格来分隔的 
    Scanner sc=new Scanner("h34h6h9h444").useDelimiter("\\s*h\\s*");
    while (sc.hasNextInt()) {
        int i = sc.nextInt();
        System.out.println(i+“,”);
    }
     \\s*  \\s* 是个格式,中间是分隔符h
     打印,34,6,9,444

还可以就是使用正则表达式,不举例了,不太会正则,
反正博客只能自己见,别人看不了,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值