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));
}
}