Java-Scanner用法

Scanner是一个专门进行输入流处理的程序类,这个类可以方便处理各种数据类型。Scanner类的主要的方法有

1. 判断是否有指定类型数据: public boolean hasNextXxx()

2. 取得指定类型的数据: public 数据类型 nextXxx()

3. 定义分隔符:public Scanner useDelimiter(Pattern pattern)

4. 构造方法:public Scanner(InputStream source)

1.Scanner读取数据有三种方法:

1.1第一种使用方法:Scanner从控制台读取数据

基本语法:Scanner input=new Scanner(System.in);

范例:

import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) throws FileNotFoundException {
        //从键盘中读入时
        Scanner input = new Scanner(System.in);
        System.out.println("使用nextLine接收内容:");
        if (input.hasNext() == true)//判断用户有没有输入字符串
        {
            String str = input.nextLine();
            System.out.println("输出内容:" + str);
        }
        input.close();
    }
}
    

1.2第二种使用方法:Scanner从文件种读取数据

基本语法:Scanner input=new Scanner(new File(fileName));

范例:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) throws FileNotFoundException {
        //从文件读取数据
        File file=new File("D:\\测试文夹\\aa.txt");
        Scanner  scanner=new Scanner(file);
        while(scanner.hasNext())
        {
            System.out.println(scanner.next());
        }
     input.close();
    }
}

1.3从web读取数据

可以从文件种读取也可以从web服务器中读取:

URL:统一资源定位器,web文件的唯一地址

URL url = new URL("www.google.com/index.html");

创建URL对象以后,使用URL类的openStream()方法获得输入流,使用这个输入流产生Scanner对象,如下

Scanner reader = new Scanner(url.openStream(),”utf-8”);

通过reader顺序读,获得资源中的文本数据。

范例:

import java.io.IOException;
import java.net.URL;
import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) throws IOException {
        URL url=new URL("https://blog.csdn.net/xxxx/article/details/124229293");
        Scanner reader = new Scanner(url.openStream(),"utf-8");
        while(reader.hasNext()){
        System.out.println(reader.nextLine());
        }
       reader.close();
    }
}

2.next和nextLine的区别

 一般都是通过Scanner类的next()与nextLine()方法获取输入的字符串在读取前一般通过hasNext()和hasNextLine()判断是否还有输入的数据,此时这俩种方法的区别是:

1.next:

  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符前的空白,next()方法会自动将其去掉
  3. 输入有效字符后会将其后面输入的空格作为分隔符或者结束符
  4. 根据3可以注意next()不能得到带有空格的字符串

2.nextLine:      

  1. 以回车为结束符,返回的是输入回车之前的所有内容
  2. 带有空格的字符串可以正常下发

代码展示:

1.nextLine的展示:

 Scanner input = new Scanner(System.in);
        System.out.println("使用nextLine接收内容:");
        if (input.hasNext() == true)//判断用户有没有输入字符串
        {
            String str = input.nextLine();
            System.out.println("输出内容:" + str);
        }

结果:

 2.next的展示:

 Scanner input = new Scanner(System.in);
        System.out.println("使用next接收内容:");
        if (input.hasNext() == true)//判断用户有没有输入字符串
        {
            String str = input.next();
            System.out.println("输出内容:" + str);
        }

结果:

 通过结果可以对比出区别。

3.Scanner可以指定任意 符号,字符等作为分割符;

范例:

 String s = "you are  Beautiful!you are kind! you are smart!";
        Scanner scanner = new Scanner(s);
        scanner.useDelimiter("!");

        while (scanner.hasNext())
            System.out.println(scanner.next());

结果:

 

  • 9
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值