Scanner 方便地截取String中各种数据类型

来源:互联网 发布:简易电路图绘制软件 编辑:程序博客网 时间:2024/06/07 18:38
public class Main {    public static void main(String[] args) {    // write your code here        String string="Shaojia Lin\n23";        Scanner scanner=new Scanner(new StringReader(string));        String name= scanner.nextLine();        int age=scanner.nextInt();        System.out.format("Hello!My name is %s,now I am %d",name,age);    }}

这里写图片描述
Scanner 可以自动截取String中的内容,如上代码,我写了一个字符串,其中有字符穿,也有整数,这个时候就可以用Scanner方便的读取其中的字符穿部分跟整数部分,next方法,有很多,nextLine(),nextInt(),nextDouble(),nextFloat()……,许多方法,用之前最好检查下是否有下一个值hasnext()方法。Scanner的构造方法中的参数可以传入任何有read()方法之类的数据流对象,很方便。

public class Main {    public static void main(String[] args) {    // write your code here        String string="Shaojia Lin\n23";        Pattern pattern=Pattern.compile("\\WLin");        Scanner scanner=new Scanner(new StringReader(string));        scanner.useDelimiter(pattern);        System.out.print(scanner.next());        System.out.print(scanner.next());    }}

这里写图片描述
当然Scanner的功能不只是分割这些基本类型,你也可以用自己的正则表达式来分割字符串,运用useDelimiter()方法,其中参数可以直接传入正则表达式String,也可以传入Pattern类,如上所示,我用的是正则表达式是非字符后面再跟着Lin,来进行分割,以我的姓氏进行分割,把字符串分割成两部分,一个是名字,一个是年龄。记录下来将来可以用到,也希望可以帮助到看到的人。

0 0