摘要:正則表達(dá)式的概述和簡(jiǎn)單使用正則表達(dá)式是指一個(gè)用來(lái)描述或者匹配一系列符合某個(gè)語(yǔ)法規(guī)則的字符串的單個(gè)字符串。例如,在表達(dá)式中,存在四個(gè)這樣的組組零始終代表整個(gè)表達(dá)式。
1_正則表達(dá)式的概述和簡(jiǎn)單使用
A:正則表達(dá)式
是指一個(gè)用來(lái)描述或者匹配一系列符合某個(gè)語(yǔ)法規(guī)則的字符串的單個(gè)字符串。其實(shí)就是一種規(guī)則。有自己特殊的應(yīng)用。
作用:比如注冊(cè)郵箱,郵箱有用戶(hù)名和密碼,一般會(huì)對(duì)其限制長(zhǎng)度,這個(gè)限制長(zhǎng)度的事情就是正則表達(dá)式做的
B:案例演示
需求:校驗(yàn)qq號(hào)碼.
1:要求必須是5-15位數(shù)字
2:0不能開(kāi)頭
3:必須都是數(shù)字
a:非正則表達(dá)式實(shí)現(xiàn)
b:正則表達(dá)式實(shí)現(xiàn)
2_字符類(lèi)演示
A:字符類(lèi)
[abc] a、b 或 c(簡(jiǎn)單類(lèi))
1 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到 Z,兩頭的字母包括在內(nèi)(范圍)
[0-9] 0到9的字符都包括
3_預(yù)定義字符類(lèi)演示
A:預(yù)定義字符類(lèi)
. 任何字符。
d 數(shù)字:[0-9]
w 單詞字符:[a-zA-Z_0-9]
4_數(shù)量詞
A:Greedy 數(shù)量詞
X? X,一次或一次也沒(méi)有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超過(guò) m 次
5_正則表達(dá)式的分割功能
A:正則表達(dá)式的分割功能
String類(lèi)的功能:public String[] split(String regex)
B:案例演示
正則表達(dá)式的分割功能
6_把給定字符串中的數(shù)字排序
A:案例演示
需求:我有如下一個(gè)字符串:”91 27 46 38 50”,請(qǐng)寫(xiě)代碼實(shí)現(xiàn)最終輸出結(jié)果是:”27 38 46 50 91”
7_正則表達(dá)式的替換功能
A:正則表達(dá)式的替換功能
String類(lèi)的功能:public String replaceAll(String regex,String replacement)
B:案例演示
正則表達(dá)式的替換功能
8_正則表達(dá)式的分組功能
A:正則表達(dá)式的分組功能
捕獲組可以通過(guò)從左到右計(jì)算其開(kāi)括號(hào)來(lái)編號(hào)。例如,在表達(dá)式 ((A)(B(C))) 中,存在四個(gè)這樣的組:
1 ((A)(B(C))) 2 (A 3 (B(C)) 4 (C) 組零始終代表整個(gè)表達(dá)式。
B:案例演示
a:切割
需求:請(qǐng)按照疊詞切割: "sdqqfgkkkhjppppkl";
b:替換
需求:我我....我...我.要...要要...要學(xué)....學(xué)學(xué)..學(xué).編..編編.編.程.程.程..程 將字符串還原成:“我要學(xué)編程”。9_Pattern和Matcher的概述
A:Pattern和Matcher的概述
B:模式和匹配器的典型調(diào)用順序
通過(guò)JDK提供的API,查看Pattern類(lèi)的說(shuō)明
典型的調(diào)用順序是
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
10_正則表達(dá)式的獲取功能
A:正則表達(dá)式的獲取功能
Pattern和Matcher的結(jié)合使用
B:案例演示
需求:把一個(gè)字符串中的手機(jī)號(hào)碼獲取出來(lái)
11_Math類(lèi)概述和方法使用
A:Math類(lèi)概述
Math 類(lèi)包含用于執(zhí)行基本數(shù)學(xué)運(yùn)算的方法,如初等指數(shù)、對(duì)數(shù)、平方根和三角函數(shù)。
B:成員方法
public static int abs(int a)
public static double ceil(double a)
public static double floor(double a)
public static int max(int a,int b) min自學(xué)
public static double pow(double a,double b)
public static double random()
public static int round(float a) 參數(shù)為double的自學(xué)
public static double sqrt(double a)
public static void main(String[] args) { System.out.println(Math.PI); System.out.println(Math.abs(-10)); //取絕對(duì)值 System.out.println(Math.ceil(12.01));//獲取向上取整,但是結(jié)果是一個(gè)double值 System.out.println(Math.ceil(12.99)); System.out.println(Math.floor(12.01));//獲取向下取整,但是結(jié)果也是一個(gè)double值 System.out.println(Math.floor(12.99)); System.out.println(Math.max(20, 30));//取最大值 System.out.println(Math.min(20, 30));//取最小值 System.out.println(Math.pow(2, 3)); //2.0的3次方 System.out.println(Math.random());//生成0.0到1.0之間的所有小數(shù),包括0.0,不包括1.0 System.out.println(Math.round(12.3f));//四舍五入 System.out.println(Math.sqrt(2));//開(kāi)平方 }12_Random類(lèi)的概述和方法使用
A:Random類(lèi)的概述
此類(lèi)用于產(chǎn)生隨機(jī)數(shù)如果用相同的種子創(chuàng)建兩個(gè) Random 實(shí)例,
則對(duì)每個(gè)實(shí)例進(jìn)行相同的方法調(diào)用序列,它們將生成并返回相同的數(shù)字序列。
B:構(gòu)造方法
public Random()
public Random(long seed)
C:成員方法
public int nextInt()
public int nextInt(int n)(重點(diǎn)掌握)
import java.util.Random; public class Other_Random_2 { public static void main(String[] args) { Random r = new Random(); /*int x = r.nextInt(); System.out.println(x); for (int i = 0; i < 10; i++) { System.out.println(r.nextInt()); System.out.println(r.nextInt(100)); } */ Random r2 = new Random(1000); int a = r2.nextInt(); int b = r2.nextInt(); System.out.println(a); System.out.println(b); } }13_System類(lèi)的概述和方法使用
A:System類(lèi)的概述
System 類(lèi)包含一些有用的類(lèi)字段和方法。它不能被實(shí)例化。
B:成員方法
public static void gc()
public static void exit(int status)
public static long currentTimeMillis()
pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
C:案例演示
System類(lèi)的成員方法使用
public class Other_System_3 { public static void main(String[] args) { // demo1(); // demo2(); // demo3(); demo4(); } private static void demo4() { int[] src = {11,22,33,44,55,66,77,88,99}; int[] dest = new int[10]; for (int i = 0; i < dest.length; i++) { System.out.println(dest[i]); } System.out.println("-----------------------"); System.arraycopy(src, 0, dest, 0, src.length); //將數(shù)組內(nèi)容拷貝 for (int i = 0; i < dest.length; i++) { System.out.println(dest[i]); } } private static void demo3() { long start = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) { System.out.println("*"); } long end = System.currentTimeMillis(); //獲取當(dāng)前時(shí)間的毫秒值 System.out.println(end - start); } private static void demo2() { System.exit(0); //非0狀態(tài)是異常終止,退出jvm System.out.println("1111111"); } private static void demo1() { for (int i = 0; i < 100; i++) { new Demo(); System.gc(); //運(yùn)行垃圾回收器 } } } class Demo { //在一個(gè)源文件中不允許定義兩個(gè)用public修飾的類(lèi) public void finalize() { System.out.println("被清掃了"); } }14_BigInteger類(lèi)的概述和方法使用
A:BigInteger的概述
可以讓超過(guò)Integer范圍內(nèi)的數(shù)據(jù)進(jìn)行運(yùn)算
B:構(gòu)造方法
public BigInteger(String val)
C:成員方法
public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger[] divideAndRemainder(BigInteger val)
import java.math.BigInteger; public class Other_BigInteger_4 { public static void main(String[] args) { // long num = 155565456465465465545; // String s = "155565456465465465545"; BigInteger bi1 = new BigInteger("100"); BigInteger bi2 = new BigInteger("3"); System.out.println(bi1.add(bi2)); // + System.out.println(bi1.subtract(bi2)); // - System.out.println(bi1.multiply(bi2)); // x System.out.println(bi1.divide(bi2)); // / BigInteger[] arr = bi1.divideAndRemainder(bi2); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }15_BigDecimal類(lèi)的概述和方法使用
A:BigDecimal的概述
由于在運(yùn)算的時(shí)候,float類(lèi)型和double很容易丟失精度,演示案例。
所以,為了能精確的表示、計(jì)算浮點(diǎn)數(shù),Java提供了BigDecimal
不可變的、任意精度的有符號(hào)十進(jìn)制數(shù)。
B:構(gòu)造方法
public BigDecimal(String val)
C:成員方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)
D:案例演示
BigDecimal類(lèi)的構(gòu)造方法和成員方法使用
import java.math.BigDecimal; public class Other_BigDecimal_5 { public static void main(String[] args) { // System.out.println(2.0 - 1.1); /* BigDecimal bd1 = new BigDecimal(2.0);//不推薦,還是不夠精確 BigDecimal bd2 = new BigDecimal(1.1); System.out.println(bd1.subtract(bd2));*/ /* BigDecimal bd1 = new BigDecimal("2.0");//通過(guò)構(gòu)造中傳入字符串的方式,開(kāi)發(fā)時(shí)推薦 BigDecimal bd2 = new BigDecimal("1.1"); System.out.println(bd1.subtract(bd2));*/ BigDecimal bd1 = BigDecimal.valueOf(2.0);//這種方法開(kāi)發(fā)中也是推薦的 BigDecimal bd2 = BigDecimal.valueOf(1.1); System.out.println(bd1.subtract(bd2)); } }16_Date類(lèi)的概述和方法使用*
A:Date類(lèi)的概述
類(lèi) Date 表示特定的瞬間,精確到毫秒。
B:構(gòu)造方法
public Date()
public Date(long date)
C:成員方法
public long getTime()
public void setTime(long time)
import java.util.Date; public class Other_6_Date { public static void main(String[] args) { // demo1(); // demo2(); Date d1 = new Date(); d1.setTime(1000); //設(shè)置毫秒值,改變時(shí)間對(duì)象 System.out.println(d1); } private static void demo2() { Date d1 = new Date(); System.out.println(d1.getTime()); //通過(guò)時(shí)間對(duì)象獲取毫秒值 System.out.println(System.currentTimeMillis());//通過(guò)系統(tǒng)類(lèi)的方法獲取當(dāng)前時(shí)間毫秒值 } private static void demo1() { Date d1 = new Date(); //沒(méi)有傳參數(shù)代表當(dāng)前時(shí)間 System.out.println(d1); Date d2 = new Date(0); //0代表Thu Jan 01 08:00:00 CST 1970 System.out.println(d2); //通過(guò)毫秒值創(chuàng)建時(shí)間對(duì)象 } }17_SimpleDateFormat類(lèi)實(shí)現(xiàn)日期和字符串的相互轉(zhuǎn)換*
A:DateFormat類(lèi)的概述
DateFormat 是日期/時(shí)間格式化子類(lèi)的抽象類(lèi),它以與語(yǔ)言無(wú)關(guān)的方式格式化并解析日期或時(shí)間。是抽象類(lèi),所以使用其子類(lèi)SimpleDateFormat
B:SimpleDateFormat構(gòu)造方法
public SimpleDateFormat()
public SimpleDateFormat(String pattern)
C:成員方法
public final String format(Date date)
public Date parse(String source)
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Other_7_DateFormat { public static void main(String[] args) throws ParseException { // demo1(); // demo2(); //將時(shí)間字符串轉(zhuǎn)換成日期對(duì)象 String str = "2000年08月08日 08:08:08"; SimpleDateFormat sdf = new SimpleDateFormat("y年M月d日 HH:mm:ss"); Date d = sdf.parse(str); //將時(shí)間字符串轉(zhuǎn)換成日期對(duì)象 Ctrl+1拋出異常 System.out.println(d); } private static void demo2() { Date d = new Date(); //獲取當(dāng)前時(shí)間對(duì)象 SimpleDateFormat sdf = new SimpleDateFormat("y年M月d日 HH:mm:ss"); //創(chuàng)建日期格式化類(lèi)對(duì)象 System.out.println(sdf.format(d)); //將日期對(duì)象轉(zhuǎn)換為字符串 } private static void demo1() { //DateFormat df = new DateFormat(); //是抽象類(lèi),不允許實(shí)例化 //DateFormat df = new SimpleDateFormat(); DateFormat df1 = DateFormat.getDateInstance(); //相當(dāng)于父類(lèi)引用指向子類(lèi)對(duì)象,右邊的方法返回一個(gè)子類(lèi) } }18_你來(lái)到這個(gè)世界多少天案例*
A:案例演示
需求:算一下你來(lái)到這個(gè)世界多少天?
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Other_8_test { public static void main(String[] args) throws ParseException { /* 分析 1.將生日字符串和今天字符串存在String類(lèi)型的變量中 2.定義日期格式化對(duì)象 3.將日期字符串轉(zhuǎn)換成日期對(duì)象 4.通過(guò)日期對(duì)象后期時(shí)間毫秒值 5.將兩個(gè)時(shí)間毫秒值相減除以1000,再除以60,再除以60,再除以24得到天*/ //1 String birthday = "1998年12月12日"; String today = "2018年9月17日"; //2 SimpleDateFormat sdf = new SimpleDateFormat("y年M月d日"); //3 Date d1 = sdf.parse(birthday); Date d2 = sdf.parse(today); //4 long time = d2.getTime() - d1.getTime(); //5 System.out.println(time / 1000 / 60 / 60 / 24 / 365); } }19_Calendar類(lèi)的概述和獲取日期的方法*
A:Calendar類(lèi)的概述
Calendar 類(lèi)是一個(gè)抽象類(lèi),它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。
B:成員方法
public static Calendar getInstance()
public int get(int field)
import java.util.Calendar; public class Other_Calendar_9 { public static void main(String[] args) { Calendar c = Calendar.getInstance(); //父類(lèi)引用指向子類(lèi)對(duì)象 // System.out.println(c); System.out.println(c.get(Calendar.YEAR));//通過(guò)字段獲取年 System.out.println(c.get(Calendar.MONDAY));//通過(guò)字段獲取月,從0開(kāi)始 System.out.println(c.get(Calendar.DAY_OF_MONTH));//獲取日 System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日是第一 System.out.println(c.get(Calendar.YEAR) + "年" + getNum(c.get(Calendar.MONTH) + 1) + "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK))); } /* 將星期存儲(chǔ)表中,進(jìn)行查表 1.返回值類(lèi)型String 2.參數(shù)列表int*/ public static String getWeek(int week) { String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; return arr[week]; } /* 將個(gè)位數(shù)字補(bǔ)0 1.返回值類(lèi)型String 2.參數(shù)列表int num*/ public static String getNum(int num) { /* if(num > 9) { return "" + num; }else { return "0" + num; }*/ return num > 9 ? "" + num : "0" + num; } }20_Calendar類(lèi)的add()和set()方法*
A:成員方法
public void add(int field,int amount)
public final void set(int year,int month,int date)
B:案例演示
Calendar類(lèi)的成員方法使用
public static void main(String[] args) { // demo1(); Calendar c = Calendar.getInstance(); //父類(lèi)引用指向子類(lèi)對(duì)象 c.add(Calendar.MONTH, -1); //對(duì)指定的字段進(jìn)行加減操作 c.set(Calendar.YEAR, 2000); //修改指定字段 c.set(2000, 7, 18); System.out.println(c.get(Calendar.YEAR) + "年" + getNum(c.get(Calendar.MONTH) + 1) + "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK))); }21_如何獲取任意年份是平年還是閏年*
A:案例演示
需求:鍵盤(pán)錄入任意一個(gè)年份,判斷該年是閏年還是平年
import java.util.Calendar; import java.util.Scanner; public class Other_10_test { public static void main(String[] args) { /* 分析 1.鍵盤(pán)錄入年Scanner 2.創(chuàng)建Calendar c = Calendar.getInstance(); 3.通過(guò)set方法設(shè)置為那一年的3月1日 4.將日向前減去1 5.判斷日是多少天,如果是29天返回true,否則false*/ Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入年份,判斷該年份是閏年還是平年:"); // int year = sc.nextInt(); String line = sc.nextLine(); //錄入數(shù)字字符串 int year = Integer.parseInt(line); //將數(shù)字字符串轉(zhuǎn)換成數(shù)字 Boolean b = getYear(year); System.out.println(b); } private static Boolean getYear(int year) { Calendar c = Calendar.getInstance();//第二步 c.set(year, 2, 1); //第三步,設(shè)置為那一年的3月1日 c.add(Calendar.DAY_OF_MONTH, -1);//將日向前減去1 return c.get(Calendar.DAY_OF_MONTH) == 29;//判斷是否為29 } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77156.html
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:大多數(shù)待遇豐厚的開(kāi)發(fā)職位都要求開(kāi)發(fā)者精通多線程技術(shù)并且有豐富的程序開(kāi)發(fā)調(diào)試優(yōu)化經(jīng)驗(yàn),所以線程相關(guān)的問(wèn)題在面試中經(jīng)常會(huì)被提到。將對(duì)象編碼為字節(jié)流稱(chēng)之為序列化,反之將字節(jié)流重建成對(duì)象稱(chēng)之為反序列化。 JVM 內(nèi)存溢出實(shí)例 - 實(shí)戰(zhàn) JVM(二) 介紹 JVM 內(nèi)存溢出產(chǎn)生情況分析 Java - 注解詳解 詳細(xì)介紹 Java 注解的使用,有利于學(xué)習(xí)編譯時(shí)注解 Java 程序員快速上手 Kot...
摘要:容器的類(lèi)圖如下圖所示接口定義了存取一組對(duì)象的方法其子接口和分別定義了存儲(chǔ)方式。中的數(shù)據(jù)對(duì)象沒(méi)有順序且不可以重復(fù)。注意相等的對(duì)象應(yīng)該具有相等的 Chap 6 常用類(lèi) focus on : 字符串相關(guān)類(lèi) (String, StringBuffer) 基本數(shù)據(jù)類(lèi)型包裝類(lèi) Math類(lèi) File類(lèi) 枚舉類(lèi) 6.1 字符串相關(guān)類(lèi) String 類(lèi) -- java.lang.String 類(lèi)...
摘要:的構(gòu)造器經(jīng)過(guò)重載可以接受多種輸出目的地,不過(guò)最常用的還是和。組號(hào)為表示整個(gè)表達(dá)式,組號(hào)表示被第一對(duì)括號(hào)括起的組,依此類(lèi)推。有多個(gè)重載的構(gòu)造器,可以接受和對(duì)象。 點(diǎn)擊進(jìn)入我的博客 字符串操作是計(jì)算機(jī)程序設(shè)計(jì)中最常見(jiàn)的行為 13.1 不可變String String底層是由char[]實(shí)現(xiàn)的,是不可變的。看起來(lái)會(huì)改變String的方法,實(shí)際上都是創(chuàng)建了一個(gè)新的String對(duì)象,任何指向它...
閱讀 2439·2021-11-23 09:51
閱讀 2471·2021-11-11 17:21
閱讀 3111·2021-09-04 16:45
閱讀 2397·2021-08-09 13:42
閱讀 2230·2019-08-29 18:39
閱讀 2898·2019-08-29 14:12
閱讀 1299·2019-08-29 13:49
閱讀 3373·2019-08-29 11:17