目錄
stringbuilder類(lèi)
StringBuffer類(lèi)
正則表達(dá)式
日期
日期格式化的類(lèi)
Calendar類(lèi):(日歷類(lèi)) 是一個(gè)抽象類(lèi)
stringbuilder類(lèi)
概念:可以改變的字符串 (這里跟string可以區(qū)分開(kāi),string創(chuàng)建的是不可改變的字符串)
底層:使用的是一個(gè)byte類(lèi)型的數(shù)組,默認(rèn)長(zhǎng)度16 (string的底層使用final修飾的數(shù)組)
-
如果超過(guò)長(zhǎng)度16:數(shù)組會(huì)自動(dòng)擴(kuò)容
-
擴(kuò)容的時(shí)機(jī):當(dāng)添加的數(shù)據(jù)的長(zhǎng)度大于此時(shí)數(shù)組的長(zhǎng)度
-
擴(kuò)容的機(jī)制:當(dāng)前數(shù)組長(zhǎng)度的2倍 + 2
構(gòu)造方法:
-
StringBuilder( ) :構(gòu)造一個(gè)沒(méi)有字符的字符串構(gòu)建器,初始容量為16個(gè)字符。
-
StringBuilder(String str) :構(gòu)造一個(gè)初始化為指定字符串內(nèi)容的字符串構(gòu)建器。
常用的方法:
-
append(boolean b) :追加(在尾部加上,不夠的會(huì)讓整個(gè)數(shù)組擴(kuò)容)
StringBuilder s = new StringBuilder("123"); System.out.println(s.append("123")); // 打印123123 // StringBuilder是可以改變字符串,正常是不用返回值,但是在append方法里面有返回值值,返回值類(lèi)型還是StringBuilder 這種設(shè)計(jì)是為了提供鏈?zhǔn)介_(kāi)發(fā) s.append("abc").append("www").append(true);// 打印123123abcwwwtrue
? ? 2. capacity() 返回當(dāng)前容量
StringBuilder stringBuilder = new StringBuilder(); // 創(chuàng)建StringBuilder的對(duì)象 System.out.println(stringBuilder.capacity()); // 獲取底層數(shù)組的長(zhǎng)度 輸出16 StringBuilder sb2 = new StringBuilder("abcde");// 將String類(lèi)型“abcde”轉(zhuǎn)換為StringBuilder 此時(shí)數(shù)組的長(zhǎng)度是21個(gè) System.out.println(sb2.capacity());// 打印21個(gè),輸入的字符串后會(huì)自動(dòng)擴(kuò)容整個(gè)數(shù)組的長(zhǎng)度方便后面append追加
3. delete(int start, int end) 刪除此序列的子字符串中的字符。
StringBuilder s = new StringBuilder("123"); s.delete(0,1); System.out.println(s); // 打印23
4. deleteCharAt(int index) 刪除 char在這個(gè)序列中的指定位置。
StringBuilder s = new StringBuilder("123"); s.deleteCharAt(2); // 打印12
5. insert(int offset, boolean b) 將 boolean參數(shù)的字符串表示插入到此序列中。
StringBuilder s = new StringBuilder("123"); s.insert(0,true); System.out.println(s);// 打印true123
6. replace(int start, int end, String str) 用指定的String中的字符替換此序列的子字符串中的 String?
StringBuilder s = new StringBuilder("123"); s.replace(0,2,"wj"); System.out.println(s); // 打印wj3
7. reverse() 導(dǎo)致該字符序列被序列的相反代替。
StringBuilder s = new StringBuilder("123"); s.reverse(); // 沒(méi)有返回值 System.out.println(s) // 打印321
8. setCharAt(int index, char ch) 指定索引處的字符設(shè)置為 ch 。
StringBuilder s = new StringBuilder("123"); s.setCharAt(0,'W'); System.out.println(s); // 打印W23
9. trimToSize() 嘗試減少用于字符序列的存儲(chǔ)。
StringBuilder s = new StringBuilder("123"); System.out.println(s.capacity()); // 打印19 s.trimToSize(); // 減少其中沒(méi)有值的存儲(chǔ) System.out.println(s.capacity()) // 打印3
StringBuffer類(lèi)
方法跟stringbuilder類(lèi)類(lèi)似
特點(diǎn):安全,但是效率想必stringbuilder更低
正則表達(dá)式
概念:就是用一個(gè)特定格式來(lái)表示某種數(shù)據(jù)
作用:用校驗(yàn)數(shù)據(jù)是否滿(mǎn)足某個(gè)要求
在java中怎樣寫(xiě)正則表達(dá)式:所有的正則表達(dá)式都是一個(gè)String類(lèi)型數(shù)據(jù)
語(yǔ)法:String regex = "[寫(xiě)一些特定格式的數(shù)據(jù)]";
0-9:任意一個(gè)數(shù)字 a-z:任意一個(gè)小寫(xiě)字母 A-Z:任意一個(gè)大寫(xiě)字母 \u4e00-\u9fa5:任意的一個(gè)漢字
以上都是檢驗(yàn)單個(gè)元素的
以下是用正則表達(dá)式來(lái)表示個(gè)數(shù)
語(yǔ)法:"[正則的數(shù)據(jù)]{個(gè)數(shù)}"
"[0-9]{2}":任意的2個(gè)數(shù)字 “[0-9]{2,15}”:任意的2個(gè)到15個(gè)之間個(gè)數(shù)的數(shù)字 "[0-9]{1,}":任意個(gè)數(shù)的數(shù)字(1個(gè)以上)
特殊的轉(zhuǎn)義字符也能表達(dá)范圍: 在[^]中加一個(gè)這個(gè)符號(hào)表示反 在^[1]外面加一個(gè)這個(gè)符號(hào)表示聲明開(kāi)頭
-
以聲明開(kāi)頭 String regex = "^1{10}";? ? ^[ ]:表示以這個(gè)內(nèi)容做開(kāi)頭
-
以聲明結(jié)尾 Sting regex = "^1{6}[.com]{4}$";? ? [.com]{4}$ 以這個(gè)內(nèi)容結(jié)尾
-
String regex = "[\\D]"; \d:任意的一個(gè)數(shù)字 \D:任意一個(gè)非數(shù)字
-
String regex = "0-9"; [0-9]表示任意的一個(gè)數(shù)字 0-9表示任意一個(gè)非0-9的東西
-
String regex = "[\\w]" \w表示任意的一個(gè)數(shù)字或者大小寫(xiě)字母
-
String regex = "[\\W]" \W表示一些特殊的字符如#
-
String regex = "[\u4e00-\u9fa5]" 表示任意一個(gè)漢字
-
String regex = "[0-9]{n,}"; {n}:固定個(gè)數(shù) {n,m}:最少n個(gè),最多m個(gè) {n,}:至少n個(gè)
-
String regex3 = "[a-zA-Z]{1,}"; 任意個(gè)大小寫(xiě)字母
-
String regex = "[0-9]+"; 表示個(gè)數(shù)的通配符:?:0個(gè)或1個(gè) *:0個(gè)或多個(gè) +:至少1個(gè)
常用方法:String類(lèi)中有幾個(gè)方法支持正則表達(dá)式
1. matches(String regex) :判斷指定字符串?dāng)?shù)據(jù)是否滿(mǎn)足傳入的正則格式
String str = "5654654675756765768"; String regex = "[0-9]{1,}"; // 聲明一個(gè)正則表達(dá)式 boolean matches = str.matches(regex);// 判斷str是否是0-9之間的任意一個(gè)數(shù)字 System.out.println(matches); // 打印true
2. replaceAll(String regex, String replacement):將匹配上正則表達(dá)式的數(shù)據(jù)替換成replacement
String str = "abcd23ab223ab"; String regex = "[0-9]{2}"; System.out.println(str.replaceAll(regex, "洋")); // 打印abcd洋ab洋3ab
日期
Date: java.util
Date:就是表示日期的一瞬間
構(gòu)造方法:
-
Date() 獲取當(dāng)前的系統(tǒng)時(shí)間。
-
Date(long date):通過(guò)傳入毫秒數(shù),轉(zhuǎn)換為對(duì)應(yīng)日期
常用方法:
-
setTime(long time):將date的日期設(shè)置為傳入的毫秒數(shù)對(duì)應(yīng)的日期
-
getTime() :將date轉(zhuǎn)換為毫秒數(shù)
Date date = new Date();// 1、獲取當(dāng)前的系統(tǒng)日期 不過(guò)顯示的格式和中國(guó)人堵塞,習(xí)慣不符需要通過(guò)格式化來(lái)滿(mǎn)足需求
日期格式化的類(lèi)
SimpleDateFormat:
-
將日期設(shè)置成我們能看懂的格式,格式化中表示的符號(hào):
-
y:年
-
M:月
-
d:日
-
H:時(shí)
-
m:分
-
s:秒
-
-
日期的格式:
-
yyyy:四位的年份(2023)
-
yy:兩位的年份(23)
-
MM:兩位月份(12)
-
dd:兩位的號(hào)數(shù)
-
HH:兩位的小時(shí)
-
mm:兩位的分鐘
-
ss:兩位秒數(shù)
-
將上面的格式拼接過(guò)后,就是新的日期顯示格式:
1)、"yyyy-MM-dd HH:mm:ss"
2)、"yyyy/MM/dd HH:mm:ss"
3)、"yyyy年MM月dd日 HH時(shí)mm分ss秒"
-
構(gòu)造方法:
1)、SimpleDateFormat():默認(rèn)格式
2)、SimpleDateFormat(String pattern) 使用設(shè)置的格式
-
常用方法:
1)、format(date):格式化日期的方法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 創(chuàng)建一個(gè)帶自定義格式的日期格式化對(duì)象 Date date = new Date(); // 創(chuàng)建當(dāng)前的日期時(shí)間的對(duì)象,然后用上面創(chuàng)建的自定義格式的對(duì)象將當(dāng)前對(duì)象格式化 String format = sdf.format(date); // 格式化日期
2)、parse(date):將一個(gè)字符串表示的日期,轉(zhuǎn)換為Date類(lèi)型
Date parse = sdf.parse("2024-02-10 00:00:00"); // 將 “2024-02-09 00:00:00”轉(zhuǎn)化為Date 注意:字符串的格式和sdf里面設(shè)置格式需要保持一致
Calendar類(lèi):(日歷類(lèi)) 是一個(gè)抽象類(lèi)
作用:進(jìn)行日期的運(yùn)算(加減日期)
-
Calendar: 是一個(gè)抽象類(lèi) (抽象類(lèi)不能直接創(chuàng)建對(duì)象)
-
創(chuàng)建Calendar對(duì)象可以調(diào)用:getInstance()方法
Calendar cal = Calendar.getInstance(); // 創(chuàng)建了一個(gè)Calendar類(lèi)型的對(duì)象
-
Calendar的常用字段(常量):
1)、YEAR:表示Calendar這個(gè)類(lèi)中 年份 字段(屬性),通過(guò)get(YEAR)獲取年的數(shù)據(jù)
2)、MONTH:表示Calendar這類(lèi)中 月份 字段(屬性),通過(guò)get(MONTH)獲取月份的數(shù)據(jù) (注意:月份從0開(kāi)始,獲取的月份的數(shù)據(jù)比實(shí)際少1)
3)、DAY_OF_MONTH:表示Calendar這個(gè)類(lèi)中的 號(hào)數(shù) 字段(屬性)
4)、HOUR:小時(shí)字段
5)、MINUTE:分鐘字段
6)、SECOND:秒的字段
-
常用方法:
1)、getInstance( )
Calendar cal = Calendar.getInstance(); // 創(chuàng)建了一個(gè)Calendar類(lèi)型的對(duì)象
2)、get(int field):根據(jù)傳入的字段,獲取對(duì)應(yīng)的數(shù)據(jù)
Calendar cal = Calendar.getInstance(); // 創(chuàng)建了一個(gè)Calendar類(lèi)型的對(duì)象 int y = cal.get(Calendar.YEAR); // 獲取 年份 int month = cal.get(Calendar.MONTH) + 1; // 獲取 月份 int d = cal.get(Calendar.DAY_OF_MONTH); // 獲取 號(hào)數(shù) ?
3)、set(int field, int value) :設(shè)置對(duì)應(yīng)字段的數(shù)據(jù)
Calendar cal = Calendar.getInstance(); // 創(chuàng)建了一個(gè)Calendar類(lèi)型的對(duì)象 cal.set(Calendar.YEAR,2024); // 調(diào)用Calendar類(lèi)的set方法,給他的屬性YEAR重新賦值 int year = cal.get(Calendar.YEAR); // 調(diào)用Calendar類(lèi)的get方法,創(chuàng)建一個(gè)新的對(duì)象來(lái)接收改變set改變后的值 System.out.println(year); // 打印2024
4)、add(int field, int amount) :對(duì)傳入的字段進(jìn)行運(yùn)算,amount是正數(shù)就是加法,amount是負(fù)數(shù)就是做減法
5)、getTime():將Calendar對(duì)象轉(zhuǎn)換Date類(lèi)型文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-795815.html
6)、setTime():將date數(shù)據(jù)傳入文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-795815.html
到了這里,關(guān)于StringBuilder類(lèi)- StringBuffer類(lèi)- 正則表達(dá)式- Date類(lèi) (日期)- SimpleDateFormat類(lèi)(日期格式化的類(lèi))- Calendar類(lèi) (日歷類(lèi))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!