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