java輔助開發的兩個封裝類

崢嶸life發表於2016-08-31

     第一個是獲取固定型別資料的封裝類

     有以下靜態方法,可以用類名.方法呼叫,返回的是對應的資料型別

    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類就可以獲取鍵盤的輸入了


封裝類裡面的方法可以根據實際需求,不斷的壯大。

相關文章