1. 程式人生 > >JAVA常用類(實用類)

JAVA常用類(實用類)

一、認識列舉
列舉是指由一組固定的常量組成的型別,存放在 java.lang 包中使用關鍵字enum定義;

	定義列舉語法格式如下:
		[Modifier] enum enumName{
		enumContantName1[,enumConstantName2.......[;]]
		//[field,method]
}

1.Modifier是訪問修飾符,如public等。
2.enum是關鍵字。
3.//[field,method]表示其它的成員,包括構造方法,至於列舉常量的後面。
4.在列舉中,如果除了定義其它成員,則列舉常量必須以分號(;)結尾。

二、列舉的使用
在java中,通常使用列舉表示一組個數有限的值,用於實現對輸入的值進行約束檢查,保證資料的安全性!`
//定義列舉類

package kgc00;
//一週七天的列舉
public enum Week {
		MON,TUE,WED,THU,FRI,SAT,SUN
}

//定義的實現類

package kgc00;
/**
 1. 列舉常量的定義和使用
 2. @author 19746
 3.  */
public class WeekDemo2 {
/**
 4. 做什麼事情
 */
	public void doWhat(Week day) {
		//使用列舉
		switch(day) {
		case MON:
		case TUE:
		case WED:
		case THU:
		case FRI:
			System.out.println("工作日,努力寫程式碼!");
			break;
		case SAT:
			System.out.println("星期六,休息!看電影!");
			break;
		case SUN:
			System.out.println("星期日,休息!看電影!");
			break;
		default:
				System.out.println("地球上的一個星期就7天");
		}
	}
}

列舉的好處:
1.列舉可以使程式碼更容易維護,確保資料的安全性,也就是必須要指定合法的值。
2.列舉易於程式設計時的輸入,方便使用,只需輸入列舉名點出來
3.列舉是程式碼更清晰,允許用描述性的名稱來表示資料,使用是方便直觀。
//測試類

public class Test {
	public static void main(String[] args) {
		WeekDemo2 wd2=new WeekDemo2();
		wd2.doWhat(Week.FRI);
	}	
}

二、包裝類

Java語言是一個面向物件的語言,但是Java中的基本資料型別卻是不面向物件的,這在實際使用時存在很多的不便,為了解決這個不足,在設計類時為每個基本資料型別設計了一個對應的類進行代表,這樣八個和基本資料型別對應的類統稱為包裝類(Wrapper Class),有些地方也翻譯為外覆類或資料型別類。
包裝類均位於java.lang包,包裝類和基本資料型別的對應關係如下表所示:

基本資料型別 對應的包裝類
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

1.每個包裝類的物件可以封裝一個相應的基本型別的資料,並提供了其它一些有用的方法。包裝類物件一經建立,其內容(所封裝的基本型別資料值)不可改變。

2.包裝類的作用:
a.包裝類作用和基本資料型別對應的類存在,方便物件的操作
b.包裝類包含每種資料型別的相關屬性,最大值,最小值等,以及相關的操作方法。

3.包裝類的構造方法

package kgc01;
//包裝類的構造方法
public class Demo {

	public static void main(String[] args) {
		//所有包裝類都可將與之對應的基本資料型別作為引數,來構造他們的例項
		Integer i=new Integer(34);
		Double d=new Double(98.7);
		Boolean b=new Boolean(true);
		Character c=new Character('a');
		System.out.println(i+"\t"+d+"\t"+b+"\t"+c);
	
		System.out.println("-----------我是分割線-------------");
		
		//除Cgaracter類外,其他包裝類可以一個字串為引數構造他們的例項
		//編譯錯誤
		//Character c2=new Character("a");
		Integer i2=new Integer("34");
		Double  d2=new Double("98.7");
		Boolean b2=new Boolean("true");
		System.out.println(i2+"\t"+d2+"\t"+b2);
		
		System.out.println("-----------我是分割線-------------");
		
		//Boolean類構造方法引數為String型別時,若該字串內容為true(不考慮大小寫),則該Boolean物件表示true,否則表示false
		Boolean b3=new Boolean("TRue");
		Boolean b4=new Boolean("false");
		Boolean b5=new Boolean("love");
		System.out.println(b3+"\t"+b4+"\t"+b5);
		
		System.out.println("-----------我是分割線-------------");
		
		//當包裝類構造方法引數為String型別時,字串不能為null,且該字串必須可解析為相應的基本資料型別的資料,否則編譯通過,執行時NumberFormatException異常
		Integer i3=new Integer(null);
		Double d4=new Double("包裝類");
		System.out.println(i3+"\t"+d4);
	}
}

4.包裝類的常用方法

package kgc02;
/**
 * 包裝類常用方法
 * @author 19746
 *
 */
public class Demo {
	public static  void main(String[] args){
		//XXXValue():包裝類轉換成基本型別
		Integer integerId=new Integer(25);
		int intId=integerId.intValue();
		System.out.println(intId);
		
		Boolean booleanVal=new Boolean(true);
		boolean bool2=booleanVal.booleanValue();
		System.out.println(bool2);
		System.out.println("***********1**************");
		
		//toString():以字串形式返回包裝物件表示的基本型別資料
		String sex=Character.toString('男');
		String id=Integer.toString(89);
		System.out.println(sex);
		System.out.println(id);
		String sex2='男'+"";
		String id2=89+"";
		System.out.println(sex2);
		System.out.println(id2);
		System.out.println("************2*************");
		
		//所有包裝類valueOf(type value)
		Integer intValue=Integer.valueOf(21);
		System.out.println(intValue);
		Boolean bool=Boolean.valueOf(false);
		System.out.println(bool);
		System.out.println("**********3*************");
			
		//parseXXX():把字串轉換為相應的基本資料型別資料(Character除外)
		int i=Integer.parseInt("89");
		System.out.println(i);
		//boolean flag=Boolean.parseBoolean("true");
		//boolean flag=Boolean.parseBoolean("TRue");
		//boolean flag=Boolean.parseBoolean("false");
		boolean flag=Boolean.parseBoolean("false");
		System.out.println(flag);
		System.out.println("************4***************");
		
		//基本型別和包裝類的自動轉換:裝箱和拆箱
		//拆箱
		Integer intObject=5;
		//拆箱
		int intValue2=intObject;
		System.out.println(intObject+"\t"+intValue2);
	}
}

5.示例

package kgc03;

import java.util.Scanner;

/**
 * 幸運抽獎:會員號的百位數與系統隨機數相同,即為中獎
 * @author 19746
 *
 */
public class GoodLuck {

	public static void main(String[] args) {
		//隨機產生一個0-9之間的任意整數
		int random=(int)(Math.random()*10);
		System.out.println(random);
		//從控制檯接收一個任意的四位數
		System.out.println("請輸入4位會員號:");
		Scanner input=new Scanner(System.in);
		int custNo=input.nextInt();
		//獲得會員號的百位數
		int baiwei=custNo/100%10;
		if(baiwei==random) {
			System.out.println(custNo+"是幸運客戶,獲得精美iPhone X一部。");
		}else {
			System.out.println(custNo+"謝謝您的支援!");
		}
	}
}

6、Random類

import java.util.Random;

public class RandomDemo {
	public static void main(String[] args) {
		Random rand = new Random();// 建立一個Random物件
			for (int i = 0; i < 20; i++) {// 隨機生成20個隨機整數,並顯示
			int num = rand.nextInt(10);// 返回下一個偽隨機數,整型的
			System.out.println("第" + (i + 1) + "個隨機數是:" + num);
		}
	}
}

7、

package kgc05;

import java.util.Scanner;

/**
 * 註冊密碼長度不少於6位
 * 字串長度
 * @author 19746
 *
 */
public class Register {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String uname, pwd;

		System.out.println("請輸入使用者名稱:");
		uname = input.next();
		System.out.println("請輸入密碼:");
		pwd = input.next();

		if (pwd.length() >= 6) {
			System.out.println("註冊成功");
		} else {
			System.out.println("密碼長度不能小於6位!");
		}
	}
}

package kgc06;

import java.util.Scanner;

public class Login {
/**
 * 登入
 * 字串比較
 */
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		String uname,pwd;
		
		System.out.println("請輸入使用者名稱:");
		uname=input.next();
		System.out.println("請輸入密碼:");
		pwd=input.next();
		
		if(uname.equals("TOM")&&pwd.equals("1234567")) {
			System.out.println("登入成功!");
		}else {
			System.out.println("使用者名稱或密碼不匹配,登入失敗!");
		}
	}
}

package kgc07;
/**
 * 演示示例4:==和equals()
 * @author 19746
 *
 */
public class StrEqu {
	public static void main(String[] args) {
		String str1="bdqn";
		String str2="bdqn";
		System.out.println(str1==str2);
		System.out.println(str1.equals(str2));
		
		String str3=new String("bdqn");
		System.out.println(str1==str3);
		System.out.println(str1.equals(str3));
		
		String str4=new String("bdqn");
		System.out.println(str3==str4);
		System.out.println(str3.equals(str4));
	}
}

package kgc08;

import java.util.Scanner;

/**
 * 登入
 * 演示示例5:忽略大小寫的字串比較
 * @author 19746
 *
 */
public class Login {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		String uname,pwd;
		
		System.out.println("請輸入使用者名稱:");
		uname=input.next();
		System.out.println("請輸入密碼:");
		pwd=input.next();
		
		/*
		if(uname.equals("TOM")&&pwd.equals("1234567")) {
			System.out.println("登入成功!");
		}else {
			System.out.println("使用者名稱或密碼不匹配,登入失敗!");
		}*/
		if(uname.equalsIgnoreCase("TOM")&&pwd.equalsIgnoreCase("1234567")) {
		System.out.println("登入成功");	
		}else {
			System.out.println("使用者名稱或密碼不匹配,登入失敗!");
		}
		 
	}
}

package kgc09;
/**
 * 列印成績單
 * 演示示例6:字串連線
 * @author 19746
 *
 */
public class PrintScore {
	public static void main(String[] args) {
		int sqlScore=80;	//SQL成績
		int javaScore=90;	//java成績
		double htmlScore=86.7;//HTML成績
		
		//成績單
		String scoreSheet="SQL:"+sqlScore+"java:"+javaScore+"HTML:"+htmlScore;
		
		//列印成績單
		System.out.println("*******成績單*******");
		System.out.println(scoreSheet);
		
		String bottom="\n\t\t版權所有:".concat("大鋒");
		System.out.println(bottom);
	}
}

package kgc010;

import java.util.Scanner;

/**
 * 演示示例7:字串提取
 * 
 * @author 19746
 *
 */
public class Verify {
	public static void main(String[] args) {
		// 宣告變數
		boolean fileCorrect = false;// 標識檔名是否正確
		boolean emailCorrect = false;// 標識E-mail是否正確
		System.out.println("---歡迎進入作業提交系統---");
		Scanner input = new Scanner(System.in);
		System.out.println("請輸入JAVA檔名:");
		String fileName = input.next();
		System.out.println("請輸入你的郵箱:");
		String email = input.next();

		// 檢查JAVA檔名
		int index = fileName.lastIndexOf(".");// "."的位置
		if (index != -1 && index != 0 && 
				fileName.substring(index + 1,//substring擷取字串方法
						fileName.length()).equals("java")) {
			fileCorrect=true;//標識檔名正確
		}else {
			System.out.println("檔名無效。");
		}
		//檢查你的郵箱格式
		if(email.indexOf('@')!=-1&&email.indexOf('.')>email.indexOf('@')) {
			emailCorrect=true;//標識E-mail正確
		}else {
			System.out.println("E-mail無效。");
		}
		//輸出檢測結果
		if(fileCorrect&&emailCorrect) {
			System.out.println("作業提交成功!");
		}else {
			System.out.println("作業提交失敗!");
		}
	}
}

package kgc010;
/**
 * 字串拆分
 * 拆分歌詞
 * @author 19746
 *
 */
public class Lyric {
	public static void main(String[] args) {
		String words="長亭外 古道邊 芳草碧連天 晚風扶 柳笛聲殘 夕陽山外山";
		String[] printword=new String[100];//接收陣列
		
		System.out.println("***原歌詞格式***\n"+words);
		System.err.println("\n***拆分後歌詞格式***");
		printword=words.split("");//按照空格進行拆分
		for(int i=0;i<printword.length;i++) {
			System.out.println(printword[i]);//列印輸出
		}
	}
	
}

package kgc010;

import java.util.Scanner;

/**
 * StringBuffer類的使用
 * @author 19746
 *
 */
public class Testlnsert {
	//每隔三位插入逗號
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("請輸入一串數字:");
		String nums=input.next();
		StringBuffer str=new StringBuffer(nums);
		//從後往前每隔三位新增逗號
		for(int i=str.length()-3;i>0;i=i-3) {
			str.insert(i, ",");
		}
		System.out.println(str);
	}
}

//演示示例11:獲取系統時間
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
	public static void main(String[] args) {
		Date date=new Date();//建立日期物件
		SimpleDateFormat formater=new SimpleDateFormat("yyyy—MM-dd HH:mm:ss");//定製日期格式
		System.out.println("當前時間為:"+formater.format(date));
	}
}

16.演示示例12: Calendar類的使用


import java.util.Calendar;

public class Test2 {
	public static void main(String[] args) {
		Calendar t = Calendar.getInstance();
		System.out.println("今天是" + t.get(Calendar.YEAR) + "年" + (t.get(Calendar.MONTH) + 1) + "月"
				+ t.get(Calendar.DAY_OF_MONTH) + "日");
		// Calendar.DAY_OF_WEEK中Sunday是1
		System.out.println("今天是星期" + (t.get(Calendar.DAY_OF_WEEK) - 1));
	}
}