关闭

java辅助开发的两个封装类

标签: java活用Scanner
429人阅读 评论(0) 收藏 举报
分类:

     第一个是获取固定类型数据的封装类

     有以下静态方法,可以用类名.方法调用,返回的是对应的数据类型

    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 aint b);

    *     该方法要求输入一个在ab之间的整数,否则会一直提示输入,直到符合要求,返回的是符合要求的数

    *

    * 这里只是一个简单的范本,可以根据实际需要可以不断的壮大这个封装类

    * 比如你可以个数增加几个,又或者可以判断的是多个整数值,数值范围要求可以是小数等等

    *     * */


 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 (choiceb) {
			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类就可以获取键盘的输入了


封装类里面的方法可以根据实际需求,不断的壮大。

3
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:315658次
    • 积分:6713
    • 等级:
    • 排名:第3904名
    • 原创:282篇
    • 转载:1篇
    • 译文:7篇
    • 评论:184条
    最新评论