关闭

java辅助开发的两个封装类

标签: java活用Scanner
528人阅读 评论(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
查看评论

java基本类型间转化辅助类

1、代码如下package com.smart.framework.utils;/** * Created with IntelliJ IDEA. * Description: * 2017-08-01-16:46 */ public class CastUtil { public ...
  • two_people
  • two_people
  • 2017-08-07 17:04
  • 212

java辅助开发的两个封装类

java开发辅助类,需要获取用户输入时可以使用,在MyInput里面已经调用了Scanner类的方法,所以不需要用户再调用Scanner方法就可以获取输入的值
  • wenzhi20102321
  • wenzhi20102321
  • 2016-08-31 15:01
  • 528

23种设计模式及java实现

一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观...
  • zmx729618
  • zmx729618
  • 2016-05-27 14:02
  • 2077

安卓游戏--浅塘之辅助开发(C/S模式)

x00_闲谈 浅塘这款游戏吧,是在大学时一个高中心仪女生推荐的,当时玩着还行,但是懒得动手去解,就开始了辅助开发之路。 在此之前,有过一次《数据结构》的课程设计,选的是八数码问题。利用了广度优先搜索,就是遍历所有可能,当然加入些许优化(如双向搜索)。没有选择深度搜索,也是为了找出最优解。当然网上还是...
  • qq_37299249
  • qq_37299249
  • 2017-06-27 01:33
  • 480

JAVA的几个同步辅助类

Java为我们提供了一些同步辅助类,利用这些辅助类我们可以在多线程编程中,灵活地把握线程的状态。 CountDownLatch CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 再CountDownLatch中两个比...
  • andong154564667
  • andong154564667
  • 2017-02-23 15:37
  • 315

java基础学习总结——多个类之间的调用

Java问题总结之15-多个类之间的调用: 代码: [java] view plain copy package java3;      public ...
  • yiziweiyang
  • yiziweiyang
  • 2016-08-25 19:24
  • 781

Object的辅助类Objects

我们知道Java提供了很多基础类以及他们的辅助类,比如Array与Arrays,Collection与Collections,今天学习一个1.7新加入的一个辅助类Objects。
  • u013769320
  • u013769320
  • 2015-11-07 17:09
  • 1100

java基本数据类型、对应的封装类以及字符串之间的相互转换

自学到这里,看完书有点乱,整理一下 自
  • feiyudiaoling
  • feiyudiaoling
  • 2016-05-09 17:02
  • 2390

程序员必备的11个辅助开发的软件神器

前言(欢迎评论区列出你认为牛逼的开发神器~) 本文来自MeloDev的投稿,他的博客地址: http://www.jianshu.com/u/f5909165c1e8程序员必备简捷开发辅助工具总结 写在前面: 工欲善其事必先利其器,拥有简捷的开发辅助工具能大大提高我们程序猿的开发效率。Mel...
  • u010321471
  • u010321471
  • 2017-11-28 00:39
  • 1819

Java基础之常用类详解

Java中有很多常用类,这些是我们必须要掌握的,下面对这些常用类及其常用方法进行总结并保持更新。包装类我们都知道,Java中有一个系统类型由两部分组成,包含基本类型(primitive),例如int、float、double等,和引用类型(reference type),如String和List。而...
  • u012483425
  • u012483425
  • 2015-05-27 21:11
  • 955
    个人资料
    • 访问:439043次
    • 积分:8006
    • 等级:
    • 排名:第3098名
    • 原创:293篇
    • 转载:1篇
    • 译文:7篇
    • 评论:206条
    最新评论