专门的输入数据类,可以完成输入数据操作,也可以方便地对输入数据进行验证。
此类存放在java.util包中
<1>实例操作一:实现基本的数据输入
使用Scanner类的next()方法
import java.util.Scanner; //================================================= // File Name : Scanner_demo //------------------------------------------------------------------------------ // Author : Common //主类 //Function : Scanner_demo; public class Scanner_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner scan = new Scanner(System.in); scan.useDelimiter(" "); //修改输入数据的分隔符,不然空格以后的字符串不能显示, 回车 System.out.println("输入数据:"); String str = scan.next(); System.out.println("输入数据的数据为:"+str); } }
如果输入int或者是float类型的数据,scanner类中也支持,不过最好先使用hasNextXxx()方法进行验证
import java.util.Scanner; //================================================= // File Name : Scanner_demo //------------------------------------------------------------------------------ // Author : Common //主类 //Function : Scanner_demo; public class Scanner_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner scan = new Scanner(System.in); //从键盘接收数据 int i =0; float f = 0.0f; System.out.println("输入整数:"); if(scan.hasNextInt()){ i = scan.nextInt(); System.out.println("输入的整数"+i); }else{ System.out.println("输入的不是整数"); } System.out.println("输入小数:"); if(scan.hasNextFloat()){ f = scan.nextFloat(); System.out.println("输入的小数"+f); }else{ System.out.println("输入的不是小数"); } } }
<2>实例操作一:实现日期格式的数据输入
使用hasNext()对输入的数据进行正则验证,如果合法,则转换成Date类型
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; //================================================= // File Name : Scanner_demo //------------------------------------------------------------------------------ // Author : Common //主类 //Function : Scanner_demo; public class Scanner_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 // Scanner scan = new Scanner(System.in); // scan.useDelimiter(" "); //修改输入数据的分隔符,不然空格以后的字符串不能显示, 回车 // System.out.println("输入数据:"); // String str = scan.next(); // System.out.println("输入数据的数据为:"+str); // Scanner scan = new Scanner(System.in); //从键盘接收数据 // int i =0; // float f = 0.0f; // System.out.println("输入整数:"); // if(scan.hasNextInt()){ // i = scan.nextInt(); // System.out.println("输入的整数"+i); // }else{ // System.out.println("输入的不是整数"); // } // // System.out.println("输入小数:"); // if(scan.hasNextFloat()){ // f = scan.nextFloat(); // System.out.println("输入的小数"+f); // }else{ // System.out.println("输入的不是小数"); // } Scanner scan = new Scanner(System.in); //从键盘接收数据 System.out.println("输入日期(yyyy-MM-dd):"); String str = null; Date date = null; if(scan.hasNext("^\d{4}-\d{2}-\d{2}$")){ //判断输入格式是否是日期 str = scan.next("^\d{4}-\d{2}-\d{2}$"); //接收日期格式的字符串 try{ date = new SimpleDateFormat("yyyy-MM-dd").parse(str); }catch(ParseException e){ e.printStackTrace(); } }else{ System.out.println("输入的日期格式错误"); } System.out.println(date); } }
<3>实例操作三:从文件中得到数据
import java.io.File; import java.io.FileNotFoundException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; //================================================= // File Name : Scanner_demo //------------------------------------------------------------------------------ // Author : Common //主类 //Function : Scanner_demo; public class Scanner_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 // Scanner scan = new Scanner(System.in); // scan.useDelimiter(" "); //修改输入数据的分隔符,不然空格以后的字符串不能显示, 回车 // System.out.println("输入数据:"); // String str = scan.next(); // System.out.println("输入数据的数据为:"+str); // Scanner scan = new Scanner(System.in); //从键盘接收数据 // int i =0; // float f = 0.0f; // System.out.println("输入整数:"); // if(scan.hasNextInt()){ // i = scan.nextInt(); // System.out.println("输入的整数"+i); // }else{ // System.out.println("输入的不是整数"); // } // // System.out.println("输入小数:"); // if(scan.hasNextFloat()){ // f = scan.nextFloat(); // System.out.println("输入的小数"+f); // }else{ // System.out.println("输入的不是小数"); // } // Scanner scan = new Scanner(System.in); //从键盘接收数据 // System.out.println("输入日期(yyyy-MM-dd):"); // String str = null; // Date date = null; // if(scan.hasNext("^\d{4}-\d{2}-\d{2}$")){ //判断输入格式是否是日期 // str = scan.next("^\d{4}-\d{2}-\d{2}$"); //接收日期格式的字符串 // try{ // date = new SimpleDateFormat("yyyy-MM-dd").parse(str); // }catch(ParseException e){ // e.printStackTrace(); // } // }else{ // System.out.println("输入的日期格式错误"); // } // System.out.println(date); File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路径 Scanner scan = null; try{ scan = new Scanner(f); //从文件接收数据 }catch(FileNotFoundException e){ e.printStackTrace(); } StringBuffer str = new StringBuffer(); //用于接收数据 while(scan.hasNext()){ //判断是否还有内容 str.append(scan.next()).append(" "); //分隔符分隔字符串,在每个字符串之后加上回车 } System.out.println(str); } }