java基礎14

1:登錄註冊案例(理解)
需求:要求做一個登錄註冊案例。
分析:
有哪些類?
用戶類
用戶基本描述類
用戶操作類
用戶操作接口
|--用戶操作類(對象數組)
|--用戶操作類(集合)
|--用戶操作類(IO)
測試類
|--用戶操作類(awt)
類有什麼?
用戶基本描述類
成員變量:用戶名,密碼,性別,地址
構造方法:無參,帶參
get/set方法。
用戶操作接口
成員方法:
登錄,註冊
測試類
main方法。
類之間的關係?
在測試類中調用用戶類和用戶操作類。


分包的分析:
老師類:
增加,刪除,修改,查找
學生類:
增加,刪除,修改,查找
工人類:
增加,刪除,修改,查找


A:按功能劃分
cn.itcast.add
cn.itcast.add.AddTeacher
cn.itcast.add.AddStudent
cn.itcast.add.AddWorker
cn.itcast.delete
cn.itcast.delete.DeleteTeacher
cn.itcast.delete.DeleteStudent
cn.itcast.delete.DeleteWorker
cn.itcast.update
...
cn.itcast.find
...

B:按照模塊劃分
cn.itcast.teacher
cn.itcast.teacher.AddTeacher
cn.itcast.teacher.DeleteTeacher
cn.itcast.teacher.UpdateTeacer
cn.itcast.teacher.FindTeacher
cn.itcast.student
cn.itcast.student.AddStudent
cn.itcast.student.DeleteStudent
cn.itcast.student.UpdateStudent
cn.itcast.student.FindStudent
cn.itcast.worker
...

今天我們先按照功能分:
用戶的基本描述類 cn.itcast.pojo (vo,dto,domain)
用戶的操作類 cn.itcast.dao 
用戶的測試類 cn.itcast.test


2:正則表達式(掌握用法)
(1)符合一定規則的字符串。
(2)規則:
A:字符
x 字符 x
\\ 反斜線字符
\r 回車符
\n 換行符


B:字符類
[abc] a、b 或 c
[^abc] 任何字符,除了 a、b 或 c  
[a-zA-Z] a 到 z 或 A 到 Z,兩頭的字母包括在內 
[0-9] 包括0-9之間的字符


C:預定義字符類
. 任何字符 
\d 數字:[0-9] 
\w 單詞字符:[a-zA-Z_0-9] 


D:邊界匹配器
^ 行的開頭 
$ 行的結尾 
\b 單詞邊界
就是指這裏出現的不能使單詞字符。 
he;wor xixi

E:Greedy 數量詞 
X? X,一次或一次也沒有 
X* X,零次或多次 
X+ X,一次或多次 
X{n} X,恰好 n 次 
X{n,} X,至少 n 次 
X{n,m} X,至少 n 次,但是不超過 m 次 


F:組的概念(按照小括號從左開始編號,每一個對應着一個組)
(a(b(c)d(e)))


第一組:a(b(c)d(e))
第二組:b(c)d(e)
第三組:c
第四組:e


將來我們就可以通過編號來獲取組中內容。組0表示整個表達式。
(3)通過String類的功能使用正則表達式
A:判斷功能
public boolean matches(String regex)
B:分割功能
public String[] split(String regex)
C:替換功能
public String replaceAll(String regex,String newString)


記住:
疊次:
在同一個字符串中,右邊引用左邊:"(.)\\1+"
在後一個字符串中引用前面的字符串的組內容:"(.)\\1+","$1"
(4)案例:

A:校驗電話號碼

import java.util.Scanner;

/*
 * 判斷功能:
 * 		public boolean matches(String regex)
 * 
 * 注意:
 * 		能夠通過我們講過的規則,去看懂別人寫好的正則表達式。
 */
public class RegexDemo {
	public static void main(String[] args) {
		// 判斷字符串”qaq”其中的字符是否是元音(aeiou)
		// String str = "qaq";
		// String str = "qbq";
		// String regex = "q[aeiou]q";
		// boolean flag = str.matches(regex);
		// System.out.println(flag);

		// 校驗電話號碼
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入電話號碼:");
		String phone = sc.nextLine();

		/*
		 * 13436975980 18712345678 13234567890 13868687979 18512349087
		 */

		// 規則
		String regex = "1[38]\\d{9}";

		boolean flag = phone.matches(regex);
		System.out.println(flag);
	}
}

B:校驗郵箱

import java.util.Scanner;

/*
 * 校驗郵箱。
 */
public class RegexTest {
	public static void main(String[] args) {
		// 鍵盤錄入郵箱
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入郵箱:");
		String email = sc.nextLine();

		// 寫規則
		// String regex =
		// "[a-zA-Z_0-9]+@[a-zA-Z0-9]{2,7}(\\.[a-zA-Z0-9]{2,3})+";
		// String regex =
		// "[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,7}(\\.[a-zA-Z_0-9]{2,3})+";
		String regex = "\\w+@\\w{2,7}(\\.\\w{2,3})+";

		/*
		 * [email protected] [email protected] [email protected] [email protected]
		 */

		// 校驗
		boolean flag = email.matches(regex);
		System.out.println(flag);
	}
}

/*
 * 替換功能:
 * 		public String replaceAll(String regex,String replacement)
 */
public class RegexDemo {
	public static void main(String[] args) {
		// 用”#”替換疊詞:"sdaaafghccccjkqqqqql";
		String str = "sdaaafghccccjkqqqqql";
		String regex = "(.)\\1+";
		String result = str.replaceAll(regex, "#");
		System.out.println(result);

		// 把數字用“*”替換wert13245asfklwyoeworewsfd6744232433fafs
		String str2 = "wert13245asfklwyoeworewsfd6744232433fafs";
		// String regex2 = "\\d+";
		String regex2 = "\\d";
		String result2 = str2.replaceAll(regex2, "*");
		System.out.println(result2);

		// 把多個疊詞變成一個。用上面的字符串;
		String str3 = "sdaaafghccccjkqqqqql";
		String regex3 = "(.)\\1+";
		//在替換功能中,我們想在第二個字符串中使用第一個規則中的組的內容,也是可以通過編號獲取的,但是這個時候的前綴是$。
		String result3 = str3.replaceAll(regex3, "$1");
		System.out.println(result3);

	}
}

C:我要學編程

/*
 * 我我....我...我.要...要要...要學....學學..學.編..編編.編.程.程.程..程
 * 將字符串還原成:“我要學編程”。
 * 
 * 分析:
 * 		A:只需要把.替換成""
 * 		B:疊詞保留一個
 */
public class RegexTest {
	public static void main(String[] args) {
		String str = "我我....我...我.要...要要...要學....學學..學.編..編編.編.程.程.程..程";


		// 只需要把.替換成""
		String s1 = str.replaceAll("\\.", "");
		System.out.println(s1);  
		
		//疊詞保留一個
		String s2 = s1.replaceAll("(.)\\1+", "$1");
		System.out.println(s2);
	}
}



發佈了42 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章