1.不可變的String
- 字符串對象是不可變的事甜。String類中每一個看起來會修改String值得方法,實際上都是創(chuàng)建了一個全新的String對象滔韵,以包含修改后的字符串內(nèi)容逻谦。
2.重載“+”與StringBuilder
- String對象時不可變的,你可以給一個String對象加人一多的別名奏属。因為String對象具有可讀特性,所以指向它的任何引用都不可能改變它的值潮峦,因此囱皿,也就不會對其他的什么影響勇婴。
- 操作符“+”可以用來連接String。我們使用“+”來連接String字符嘱腥,編譯期自動引入了
java.lang.StringBuilder
類耕渴,但是StringBuilder在循環(huán)內(nèi)構(gòu)造的,會創(chuàng)建多個StringBuilder齿兔。所以直接使用 StringBuilder類橱脸,它只會生成一個StringBuilder類,同時最好預先指定StringBuilder的大小分苇,避免多次重新分配緩沖添诉。
3.無意識的遞歸
- Java中的每一個類都是從根本上繼承Object,標準容器類也不例外医寿。調(diào)用容器的toString的方法會遍歷容器中所有元素的toString方法栏赴。
4.String上的操作
當需要改變字符串的內(nèi)容時,String類的方法都會返回一個新的String對象靖秩。同時须眷,如果內(nèi)容沒有發(fā)生改變,String方法只是返回指向員對象的引用而已沟突。這可以節(jié)約存儲空間避免額外的開銷花颗。
-
方法 構(gòu)造器 length() charAt() getChars,getBytes() toCharArray() equals(),equalsIgnoreCase() compareTo() contains() contentEquals() regionMatcher() startsWith() endsWith() indexOf(),lastIndexOf() substring() concat() replace() toLowerCase(),toUpperCase trim() valueOf()
5.格式化輸出
5.1 printf()
printf("Row 1: [%d %f]\n",x,y);
5.2 System.out.format()
5.3 Formatter類
- 所有的格式化功能都有
java.util.Formatter
類處理』菔茫可以將Formatter看做一個翻譯器扩劝,它將你的格式化字符串與數(shù)據(jù)翻譯成需要的結(jié)果。
5.4 格式化說明符
-
語法
%[argument_index$][flags][width][.percision]conversion
5.5 Formatter轉(zhuǎn)換
-
類型轉(zhuǎn)化字符
d 整數(shù)型(十進制) e 浮點數(shù)(科學記數(shù)) c unicode字符 x 整數(shù)(16進制) b Boolean h 散列碼(16進制) s String % 字符% f 浮點數(shù)(10進制)
5.6 String,format()
6.正則表達式
7.掃描輸入
Scanner構(gòu)造器可以接受任何類型的輸入對象求橄,包括
File對象
今野,InputStream
,String
或者Readable對象
罐农。Scanner還有相應的hasNext方法条霜,用以判斷下一個輸入分詞是否是所需的類型。
Scanner調(diào)用
useDelimiter()
來設置定界符涵亏。
05/06/2019 :created