最近看到JAVA编程思想4TH。看到JAVAio这一章节的时候,觉得十分繁复和难以理解。不知道是不是故意的,这本书中一直没有出现运行时输入这样的场景。对于一个习惯了一个C语言这样的过程编程的人来说,已经习惯于scnaf这个十分便捷的运行时输入函数。但是在学习JAVA的过程中,运行时输入的内容书本上完全没看到过示例,于是网上找了一下JAVA中运行时输入的办法,方式还是比较多的。这里先列出最实用最方便的一种,其余的日后补充:
利用Scanner:Scanner的构造器接受最多类型的参数。它能接受字符串(String)、文件输入(File)、系统输入流(System.in)。
package chapter13;
import java.util.*;
import java.io.*;
public class EchoInput {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Scanner sc=new Scanner(System.in);
String name=sc.nextLine();
System.out.println(name);
sc.close();
Scanner fr=new Scanner(new File("C:\\Users\\Administrator\\Desktop\\hello.txt"));
String str1=fr.nextLine();
String str2=fr.nextLine();
System.out.println(str1+str2);
fr.close();
Scanner sr=new Scanner("nihao\nshijie");
String t=sr.nextLine();
System.out.println(t);
sr.close();
}catch(Exception e){
System.out.print("error");
}finally{
}
}
}
运行结果:
kkkk(输入的)
kkkk
hello java world i'm koko devil master.nice to meet you !
nihao
我们可以看到Scanner的默认定界符是:空白字符
也就相当于:scanner.useDelimiter(" ");
我们也可以利用这个useDelimiter方法用正则表达式自定义定界符。
Scanner sr=new Scanner("22133");
sr.useDelimiter("1");
int t=sr.nextInt();
System.out.println(t);
sr.close();
运行结果:
22