第一个是获取固定类型数据的封装类
有以下静态方法,可以用类名.方法调用,返回的是对应的数据类型
nextInt()
nextFloat()
nextBoolean()
next()
要求用户输入固定类型的数,否则一直循环知道输入正确的数,
直到输入的是符合要求的,并返回该数值
package com.lwz.util;
import java.util.Scanner;
public class MyInput {
public static Scanner scanner = new Scanner(System.in);
// 排除非整数的输入的实现代码,否则一直循环输入,直到输入整数
public static int nextInt() {
while (!scanner.hasNextInt()) {
System.err.println("请输入整数:");
scanner.next();
}
return scanner.nextInt();
}
// 获取输入的float类型的小数的方法
public static float nextFloat() {
while (!scanner.hasNextFloat()) {
System.err.println("请输入小数:");
scanner.next();
}
return scanner.nextFloat();
}
// 获取输入的double类型的小数的方法
public static double nextDouble() {
while (!scanner.hasNextDouble()) {
System.err.println("请输入小数:");
scanner.next();
}
return scanner.nextDouble();
}
// 获取输入的boolean类型数值的方法
public static boolean nextBoolean() {
while (!scanner.hasNextDouble()) {
System.err.println("请输入布尔类型数值:");
scanner.next();
}
return scanner.nextBoolean();
}
// 获取输入的字符串的方法
public static String next() {
return scanner.next();
}
}
// 关闭Scanner对象的方法
public static void scannerClose() {
scanner.close();
}
}
第二个类是过滤若干个元素或数据范围的封装类
/*
* 这个类是依赖于Myinput类使用的
*
* 第一种方法、判断用户输入的是否是规定的符号,否则一直循环,直到输入正确
* String filter(两个以上参数);参数值是String类型的
* 暂时支持七个参数的输入,返回值是要输入的正确值
* 比如你需要用户输入加减乘除,就可以输入四个参数,方法会帮你过滤选择,
* 如果选择的不是加减乘除会要求重新输入,直到输入的是合法的,
并返回
*
* 第二种方法、判断输入的数是否在一个数值范围内
* intfilterIntBiger(int a);
* 该方法要求输入一个比a大的整数,否则会一直提示输入,直到符合要求,返回的是符合要求的数
* intfilterIntAB(int a,int b);
* 该方法要求输入一个在a到b之间的整数,否则会一直提示输入,直到符合要求,返回的是符合要求的数
*
* 这里只是一个简单的范本,可以根据实际需要可以不断的壮大这个封装类
* 比如你可以个数增加几个,又或者可以判断的是多个整数值,数值范围要求可以是小数等等
* * */
package com.lwz.util;
public class MyDateFilter {
// 2个元素的判断
public static String filter(String a, String b) {
String choice = "";
choice = MyInput.next();
while (!a.equals(choice) && !b.equals(choice)) {
System.out.println("请输入:" + a + " / " + b);
choice = MyInput.next();
}
return choice;
}
// 3个元素的判断
public static String filter(String a, String b, String c) {
String choice = "";
choice = MyInput.next();
while (!a.equals(choice) && !b.equals(choice) && !c.equals(choice)) {
System.out.println("请输入:" + a + " / " + b + " / " + c);
choice = MyInput.next();
}
return choice;
}
// 4个元素的判断
public static String filter(String a, String b, String c, String d) {
String choice = "";
choice = MyInput.next();
while (!a.equals(choice) && !b.equals(choice) && !c.equals(choice)
&& !d.equals(choice)) {
System.out.println("请输入:" + a + "/" + b + "/" + c + "/" + d);
choice = MyInput.next();
}
return choice;
}
// 5个元素的判断
public static String filter(String a, String b, String c, String d, String e) {
String choice = "";
choice = MyInput.next();
while (!a.equals(choice) && !b.equals(choice) && !c.equals(choice)
&& !d.equals(choice) && !e.equals(choice)) {
System.out.println("请输入:" + a + "/" + b + "/" + c + "/" + d + "/"
+ e);
choice = MyInput.next();
}
return choice;
}
// 6个元素的判断
public static String filter(String a, String b, String c, String d, String e,
String f) {
String choice = "";
choice = MyInput.next();
while (!a.equals(choice) && !b.equals(choice) && !c.equals(choice)
&& !d.equals(choice) && !e.equals(choice) && !f.equals(choice)) {
System.out.println("请输入:" + a + "/" + b + "/" + c + "/" + d + "/"
+ e + "/" + f);
choice = MyInput.next();
}
return choice;
}
// 7个元素的判断
public static String filter(String a, String b, String c, String d, String e,
String f, String g) {
String choice = "";
choice = MyInput.next();
while (!a.equals(choice) && !b.equals(choice) && !c.equals(choice)
&& !d.equals(choice) && !e.equals(choice) && !f.equals(choice)
&& !g.equals(choice)) {
System.out.println("请输入:" + a + "/" + b + "/" + c + "/" + d + "/"
+ e + "/" + f + "/" + g);
choice = MyInput.next();
}
return choice;
}
//判断输入的数范围是否合法
public static int filterIntAB(int a,int b){
int choice=0;
choice=MyInput.nextInt();
while (choice
b) {
System.out.print("\n请输入范围在"+a+" - "+b+"之间的数:");
choice=MyInput.nextInt();
}
return choice;
}
//判断输入的数大于或等于某个值
public static int filterIntBiger(int a){
int choice=0;
choice=MyInput.nextInt();
while (choice
这两个类使用于一些需要获取用户输入的程序里面,获取判断用户的输入合法性。
我一般是把这两个类放到一个包里,把整个包,复制到工程文件中,就可以用类名.方法,来调用需要的方法。
无需使用Scanner类就可以获取键盘的输入了
封装类里面的方法可以根据实际需求,不断的壮大。