java用scanner_Java Scanner使用示例

Java中的Scanner类(java.util.Scanner)在Java 1.5中作为简单的文本扫描程序引入,它可以使用正则表达式解析基本类型和字符串。

Java Scanner类可用于使用任何正则表达式分隔符将输入分解为标记,并且它也适用于解析文件。

Scanner类可用于将文件数据读入原语。它还扩展了String split()方法,以将标记作为String,int,long,Integer和其他包装类返回。

Java Scanner示例

在这里,使用Scanner逐行读取文件,解析CSV文件以轻松创建java对象并从用户输入中读取。

import java.io.IOException;

import java.nio.file.Path;

import java.nio.file.Paths;

import java.util.Scanner;

public class JavaFileScanner {

public static void main(String[] args) throws IOException {

/**

*/

String fileName = "D:/users/maxsu/source.txt";

Path path = Paths.get(fileName);

Scanner scanner = new Scanner(path);

// 逐行读取文件

scanner.useDelimiter(System.getProperty("line.separator"));

while(scanner.hasNext()){

System.out.println("Lines: "+scanner.next());

}

scanner.close();

// 读取CSV文件并将其解析为对象数组

scanner = new Scanner(Paths.get("D:/users/maxsu/data.csv"));

scanner.useDelimiter(System.getProperty("line.separator"));

while(scanner.hasNext()){

//解析行以获取Emp对象

Employee emp = parseCSVLine(scanner.next());

System.out.println(emp.toString());

}

scanner.close();

//从 System 读取输入

System.out.println("Read from system input:");

scanner = new Scanner(System.in);

System.out.println("Input first word: "+scanner.next());

}

private static Employee parseCSVLine(String line) {

Scanner scanner = new Scanner(line);

scanner.useDelimiter("\\s*,\\s*");

String name = scanner.next();

int age = scanner.nextInt();

String gender = scanner.next();

JavaFileScanner jfs = new JavaFileScanner();

return jfs.new Employee(name, age, gender);

}

public class Employee{

private String name;

private int age;

private String gender;

public Employee(String n, int a, String gen){

this.name = n;

this.age = a;

this.gender = gen;

}

@Override

public String toString(){

return "Name="+this.name+"::Age="+this.age+"::Gender="+this.gender;

}

}

}

上述程序的输出如下所示:

Lines: My Name is Maxsu

Lines: My website is kaops.com

Lines: Phone : 1234567890

Name=Maxsu::Age=28::Gender=Male

Name=Lisa::Age=30::Gender=Female

Name=Mike::Age=25::Gender=Male

Read from system input:

Maxsu Lee

Input first word: Maxsu

可以使用Scanner类将输入解析为特定的数据类型标记。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值