1.字符串相關
站在用戶的角度思考問題,與客戶深入溝通,找到臨湘網(wǎng)站設計與臨湘網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋臨湘地區(qū)。
String:
使用String str1 = “abc”;的創(chuàng)建方式。第一次用到一個字符串字面值時,會在“字符串常量池”中創(chuàng)建字符串實例。再次使用相同的字面值時,會優(yōu)先從“字符串常量池”獲取已經(jīng)存在的字符串實例。
String str2 = “abc”。str1和str2獲取的是同一個實例,所以str1==str2為true.
字符串連接一次必定會創(chuàng)建一個新的String變量,效率低。
常用方法:
1、charAt(int index)
2、toUpperCase()/toLowerCase()
3、length()
4、compareTo(String anotherString)
5、compareToIgnoreCase(String str): 按字符編碼表順序比較
6、startsWith(String str): 以str開頭,返回boolean
7、endsWith():
8、equals(Object obj):
9、equalsIgnoreCase(String str):
10、indexOf(String s):
11、lastIndexOf(String s):
12、indexOf(String s, int fromIndex): 從指定位置開始向后找
13、replace(char oldChar, char newChar);
14、substring(int beginIndex): 從指定下標開始截取后面字符串(包含)
15、substring(int beginIndex, int endIndex): 截取指定范圍字符串
16、trim():去除兩端空白字符。
17、getBytes(): 將字符串轉為默認編碼的byte數(shù)組并返回byte[]
18、getbytes(編碼): 將unicode(默認)轉為指定編碼格式的字節(jié)數(shù)組
19、toCharArray(): 字符串轉為char[]數(shù)組
20、String.valueOf(各種數(shù)據(jù)):將任何數(shù)據(jù)轉為字符串
21、matches(regex): 判斷當前字符串能否與正則表達式匹配
22、replaceAll(regex, 子串):將所有找到的匹配子串,替換為新的子串 23、replaceFirst(regex, 子串):替換第一個找到的匹配子串
24、split(regex): 用匹配的子串,拆分字符串。
可變的字符序列:(兩者有兼容的API)
StringBuilder:單線程情況下使用這個更高效率
StringBuffer:多線程下使用這個,安全(多了線程安全保護)
1、append(內(nèi)容): 末尾追加字符,高效的字符串連接
2、delete(int start, int end): 刪除[start, end),通常都是左閉右開區(qū)間 3、deleteCharAt(int index): 刪除單個字符
4、insert(int index, 子串):在index位置,插入一個子串。
5、replace(int start, int end, String s):將[start, end)替換為指定字符串s.
6、reverse(): 翻轉字符串
7、setCharAt(int index, char ch): 將index位置替換為字符ch。
8、toString(): 轉為String類型
2. 正則表達式
java.util.regex.Pattern
java.util.regex.Matcher
創(chuàng)建實例:
Pattern p = Pattern.compile(“正則表達式”);
//表示一個正則表達式實例
Matcher m = p.mathcer(待匹配字符串);
//包裝正則表達式和待匹配的字符串
Matcher方法:
find();尋找下一個匹配的子串,返回boolean值,表示是否找到匹配子串。
find(int form):從指定位置向后尋找
group() 獲得剛剛找到的子串
start():獲得剛剛子串的起始位置
end() 獲得剛剛子串的結束位置
正則表達式 匹配的字符
------------- --------------------
a a
z z
abc abc
[abc] a, b, c
[a-z] a, z, k, r, q
[a-z_A-Z0-9] a, z, A, Z, 0, 5, 9, _
[^a-zA-Z] 排除英文字母, 0, _, &, *, #
[\u4e00-\u9fa5]
\w 單詞字符, [a-zA-Z_0-9]
\W 排除單詞字符
\s 空白字符
\S 排除空白字符
\d 數(shù)字[0-9]
\D 排除數(shù)字 [^0-9]
. 任意字符
[abc]? ? 0個或1個
a,b,c,,
[abc]+ + 1到多個
a, c, aa, bbb, cccc, abcabcabcabcabc
[abc]* * 0到多個
,,a, c, aa, bbb, cccc, abcabcabcabcabc
[abc]{3} aaa, bbb, ccc, abc, cba, aab, cca, bbc
[abc]{2,4} ab, abc, abcc
[abc]{2,} ab, bc, abcabcabcabcaabcabcabc
| 匹配兩側任意一個表達式即可
3. 數(shù)字運算相關
3.1 Number是數(shù)據(jù)包裝類的抽象父類
Byte、Short、Integer、Long、Float、Double
3.2 自動裝箱,自動拆箱
代碼的語法簡化
自動裝箱:
Integer a = 56;
編譯為:Integer a = Integer.valueOf(56);
自動拆箱:
int i = a;
編譯為:int I = a.intValue();
a = a + I;
編譯為:a = Integer.valueOf(a.intValue() + 1);
自動拆箱當心null值的情況,會拋空指針錯誤。
注意:Integer底層有一個實例緩存區(qū),緩存-128到127的包裝對象
Integer a = Integer.valueOf(128);
Integer b = Integer.valueOf(128);
System.out.println(a == b);//false
Integer c = Integer.valueOf(127);
Integer d = Integer.valueOf(127);
System.out.println(c == d);//true
3.3 大數(shù)字
java.math.BigDecimal:做精確的浮點數(shù)運算
java.math.BigInteger:做超出長×××范圍的整數(shù)運算。
創(chuàng)建實例:
BigDecimal bd = BigDecimal.valueOf(3.14);
方法:
add(BigDecimal bd)
subtract(BigDecimal bd)
multiply(BigDecimal bd)
divide(BigDecimal bd)
通常divide()方法需要同時指定scale,即舍入方式。如若不然,當除不盡的時候,會拋出算術異常。通常使用:ROUND_HALF_UP。四舍五入
數(shù)字格式工具:
java.text.DecimalFormat
將數(shù)字轉為格式字符串
數(shù)字格式的字符串,轉為數(shù)字類型
創(chuàng)建實例:
DecimalFormat f = new DecimalFormat(格式字符串);
格式字符串:$###,###,###.000
方法:
format(數(shù)字):將數(shù)字格式化為格式字符串
parse(格式化字符串):將格式化后的字符串還原為數(shù)字
4. 日期日歷相關
4.1 java.util.Date
表示一個時間點
內(nèi)部包含一個長×××毫秒值
創(chuàng)建實例:
Date d = new Date();
Date d = new Date(365L*24*60*60*1000);指定一個毫秒值時間點
方法:
getTime(Long l):獲取內(nèi)部毫秒值
setTime();
4.2 java.text.SimpleDateFormat
日期格式化工具
創(chuàng)建實例:
SimpleDateFormat df = new SimpleDateFormat(格式化字符串);
格式化字符串舉例:
yyyy-MM-dd HH:mm:ss
yy/MM/dd
yyyy年MM月dd日
方法:
format(Date d) 將實例轉為日期格式字符串
parse(日期格式化字符串):將該字符串解析為Date實例
4.3 java.util.Calendar
日歷的抽象父類
表示一個時間點
提供日期運算方法
創(chuàng)建實例:
Calendar c = Calendar.getInstance();
Calendar cc = new GregorianCalendar();
方法:
get(字段):獲得指定字段的值,Calendar.YEAR等
set(字段,值):自改指定字段的值。
set(int year, int month, int date, int hourOfDay, int minute, int second):
add(字段,值):在指定字段上增加一個值c.add(Calendar.YEAR,1);
compareTo(Calendar cc):與另一個日期時間比較,大返回正數(shù)。
getActualMaximum(字段):獲得指定字段的最大值。
setFirstDayOfWeek(): 設置一周的第一天
getFirstDayOfWeek():獲得一周的第一天
getTime():獲得表示相同時間的Date類型實例
setTime(Date date):將時間設置為指定Date實例所表示的時間
getTimeInMillis():
setTimeInMillis(long millis)