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,来进行分割,以我的姓氏进行分割,把字符串分割成两部分,一个是名字,一个是年龄。记录下来将来可以用到,也希望可以帮助到看到的人。