Java基礎(chǔ)筆記總結(jié)(7)-常見類(1)Scanner,String虾攻、StringBuffer铡买、StringBulider、Arrays霎箍、基本數(shù)據(jù)類型包裝類(裝箱還拆箱)

java lang包不需要導(dǎo)包

1奇钞、字符串字面值可以被看成字符串對(duì)象

2、字符串是常量漂坏,一旦被賦值景埃,就不能改變

toString()方法返回對(duì)象本身媒至,當(dāng)改變值是實(shí)際是改變了地址值

String類的構(gòu)造方法

public String()默認(rèn)空行構(gòu)造方法

public String(byte[] bytes) 對(duì)byte數(shù)組進(jìn)行解碼操作

public String(byte[] bytes,int index ,int length)把字節(jié)數(shù)組一部分轉(zhuǎn)換成字符串

public String(char[] value)把字符數(shù)組轉(zhuǎn)換成字符串

public String(char[] value谷徙,int index ,int length)把字符數(shù)組的一部分轉(zhuǎn)換成字符串

public String (String original) 把字符串常量值轉(zhuǎn)成字符串

String類的判斷功能

s1.equals(s2)? 字符串等價(jià)拒啰,不忽略大小寫

s1.equalsIgnoreCase(String str)比較字符串的內(nèi)容想否相同 ,忽略大小寫

s1.contains(str) 判斷大字符串是都包含子字符串

s1.startsWith(String str) 判斷字符串是否以指定字符串開頭

s1.endsWith(String str) 判斷字符串是否以指定字符串結(jié)尾

s1.isEmpty()判斷字符串是否為空

“”和null的區(qū)別

“”是字符串常量完慧,同時(shí)也是一個(gè)String類對(duì)象图呢,是對(duì)象就可以調(diào)用其方法

null 是空常量,不能調(diào)用任何方法骗随,否則會(huì)出現(xiàn)空指針異常蛤织,null常量可以給任意的引用數(shù)據(jù)類型賦值

String類的獲取動(dòng)能

str.length 返回長(zhǎng)度

string charAt(int index) 獲取指定索引位置的字符,超出位置 StringIndexOutOfBoundsException

indexOf(int ch)獲取指定字符在此字符中出現(xiàn)的第一處索引位置

indexOf(String str)獲取指定字符串在此字符中出現(xiàn)的第一處索引位置

indexOf(int ch鸿染,int index)從指定位置開始指蚜,獲取指定字符在此字符中出現(xiàn)的第一處索引位置

indexOf(String str,int index)從指定位置開始涨椒,獲取指定字符在此字符中出現(xiàn)的第一處索引位置

lastIndexOf

subString(int start) 從指定位置開始截取字符串摊鸡,默認(rèn)到末尾

subString(int start,int end) 從指定位置開始截取字符串蚕冬,并到指定位置結(jié)束

字符串的遍歷:

for(int i = 0 ; i<str.length(); i++){

char c = str.charAt(i);

}

String類的轉(zhuǎn)換功能

byte[] getBytes() 把字符串轉(zhuǎn)換為字節(jié)數(shù)組 GBk碼 一個(gè)中文代表兩個(gè)字節(jié)免猾,GBk碼表,中文的第一個(gè)字節(jié)肯定是負(fù)數(shù)

char[] toCharArray()把字符串轉(zhuǎn)換為字節(jié)數(shù)組

static String valueOf(char[] chs) 把字符轉(zhuǎn)換成字符串

static String valueOf(int i) 把字符轉(zhuǎn)換成字符串囤热,把int類型的數(shù)據(jù)轉(zhuǎn)換為字符串猎提,可以把任意類型的數(shù)據(jù)轉(zhuǎn)換為字符串

抽取方法快捷鍵 alt+shift+M

str.toLowerCase() 是對(duì)原來的字符串進(jìn)行改造并賦值給新的字符串,注意一定是返回值才是修改后的

str.toUpperCase()

str.concat(str2) 拼接字符串

String類的其他功能

字符串代替

str.replace(char old ,char new )

str.replace(string old,string new)

CharSequence 字符串的父類

字符串去除空格的方法//去除的時(shí)開頭和末尾的演示

str.trim();

字符串按照字典順序比較兩個(gè)字符串:

int i = str.compareTo(String str)? 正數(shù)(前比后大)旁蔼、負(fù)數(shù)和零锨苏,從第一個(gè)字母開始比較,相同繼續(xù)棺聊,不同則返回伞租,完全一樣的按照長(zhǎng)度比較

int i = str.compareToIgnoreCase(String str)

注意char的轉(zhuǎn)換都是Unicode值(AscII隸屬于Unicode表)

字符串的翻轉(zhuǎn)

1、將字符串轉(zhuǎn)換成字符數(shù)組

2限佩、將遍歷字符數(shù)組葵诈,并在此拼接成字符串

案例 統(tǒng)計(jì)大串中小串出現(xiàn)的次數(shù)

1、定義計(jì)數(shù)器祟同,變量為0

2作喘、利用IndexOf()方法來判斷大串中的小串,如果沒有返回-1耐亏;如果有返回索引值

3徊都、根據(jù)獲取索引值沪斟,截取字符串


StringBuffer類

1广辰、屬于Java.lang

2暇矫、線程安全的可變字符串序列(線程安全效率低,線程不安全效率較高)

StringBuffer和String的區(qū)別

String是一個(gè)不可變的字符序列择吊,而StringBuffer是一個(gè)可變的字符序列李根,執(zhí)行同步

StringBuilder是不同步的,線程不安全几睛,但是速度快

StringBuffer的構(gòu)造方法

public StringBuffer();初始容量為16 若沒超出房轿,不會(huì)分出新的緩沖區(qū)數(shù)組

public StringBuffer(CharSequence seq);父類引用放子類對(duì)象

public StringBuffer(int capacity);

public StringBuffer(String str);

初始容量

stringBuffer.capacity(),理論值

長(zhǎng)度length()不是初始容量方法所森,實(shí)際值

如果構(gòu)造方法放入字符串囱持,StringBuffer的容量是capacity+length

------------------------------------------------------------------

StringBuffer的添加功能

StringBuffer sb = new StringBuffer();

sb= sb.append(String str...)

注意引用指向了同一個(gè)對(duì)象,所以每一個(gè)引用的值都是相同的焕济,不斷在向字符緩沖區(qū)增加內(nèi)容

指定位置添加sb.insert(int index(具體位置),"heima");但是要注意索引越界異常的問題纷妆,三索引指代是數(shù)組內(nèi)的第四個(gè)位置

StringBuffer的刪除功能

StringBuffer sb = new StringBuffer();

sb.delete(int index(具體的位置)); 注意索引越界異常

sb.delete(int start,int end);刪除結(jié)果包含頭但不包含尾

清空緩沖區(qū)sb.delete(0,sb.length());

StringBuffer的替換和反轉(zhuǎn)功能

StringBuffer sb = new StringBuffer("xxxxxxxxxx");]

sb.replace(int start,int end,str);包頭不包尾

sb.reverse()字符串反轉(zhuǎn)

-----------------------------------------------------------------------

StringBuffer的注意事項(xiàng)

String str = sb.subString(int start) 指定位置到末尾,注意是String接收

subString(int start,int end)包頭不包尾,只改變字符串晴弃,StringBuffer不改變

StringBuffer和String互相轉(zhuǎn)換

String--->StringBuffer

Stringbuffer sb = newStringBuffer(String str);

通過構(gòu)造方法將字符串轉(zhuǎn)換為StringBuffer

或者使用append方法將字符串轉(zhuǎn)換為StringBuffer

StringBuffer--->String

String s1 = new String(StringBuffer);

s1 =sb.toString();

s1 = sb.subString(0,sb.length());

-----------------------------------------------------------------------------

StringBuffer和StringBudder的區(qū)別:方法是一模一樣的

StringBuffer 是JDk1.0 線程安全效率低

StringBulider 是JDK1.5 線程不安全效率高

兩者作為參數(shù)傳遞時(shí)掩幢,

基本數(shù)據(jù)類型的值傳遞,不改變值

引用數(shù)據(jù)類型的值傳遞上鞠,改變其值

-----------------------------------------------------------------------------

冒泡法:(一定是向后排序)

如果前面元素比后面大际邻,交換位置

for(int i = 0;i < arr.length;i++)

? for(int j = 0; j< arr.length-i-1;j++)

if(arr[j]>a[j+1]){

int temp = arr[j];

arr[j]=arr[j+1];

arr[j+1] = temp

}

-----------------------------------------------------------------------------選擇排序(第一個(gè)位置依次與其他位置比較)

for(int i =0;i<arr.length;i++){

? for(int j=i+1;j<arr.length;j++){

if(arr[i]<a[j]){

int temp = arr[j];

arr[j]=arr[i];

arr[i] = temp

}

}

-----------------------------------------------------------------------------二分查找(前提是數(shù)組排列有序) 不應(yīng)該有重復(fù)元素,否則是找不到的

int min = 0;

int max = arr.length-1;

int mid = (min+max)/2

while(arr[mid] != num){

? if(arr[mid]>num){

? ? max = mid -1;

? }else {

? ? min = mid +1;

? }

? ? mid = (min+max)/2;

? if(min>max){

? ? break;

? }

}

-----------------------------------------------------------------------------Array類

Arrays.toString(int[] a)

Arrays.sort(int[] a);

Attray.binarySearch(int[] a ,int key);如果沒有找到 則放在負(fù)的插入點(diǎn)-1

-----------------------------------------------------------------------------

基本數(shù)據(jù)類型包裝類 在對(duì)象中定義更多的方法操作該數(shù)據(jù)

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

bool Boolean

構(gòu)造方法 public Integer(int value)

public Integer(String s(必須是整形數(shù)字字符串 不然會(huì)報(bào)錯(cuò)) )

可以將整數(shù)轉(zhuǎn)換成對(duì)應(yīng)進(jìn)制的數(shù)字Binary Hex Octal

靜態(tài)常量最大值max_value 2^31-1和最小值min_value -2^31

int 和String的轉(zhuǎn)換

int - String

1芍阎、利用""拼接

2世曾、public staic String valueOf(int i);

3、int - Integer - String

? Interger類的toString()方法

4谴咸、public static String toString(int i);

String ---int

? ? int i = new Integer(String str).intValue();

? ? public static int parseInt(String s);

注意 只有Char類型沒有parseInt()的方法度硝,也就是Character中并沒有該種方法

? ? 字符串到字符轉(zhuǎn)換用toCharArray()就可以

JDK5的拆箱、裝箱操作

自動(dòng)拆箱 把包裝數(shù)據(jù)類型轉(zhuǎn)換成基本數(shù)據(jù)類型

? ? ? //? int i = new Integer().intValue(i1);

int i = Integer i1;

自動(dòng)裝箱 把基本數(shù)據(jù)類型轉(zhuǎn)換成包裝數(shù)據(jù)類型

? ? ? //? Interger i = 100寿冕;

? Integer i = new Integer(100);

注意在裝箱過程中蕊程,如果數(shù)字在-128-127 代表byte取值范圍,在其中的不會(huì)出現(xiàn)問題驼唱,只會(huì)去常量數(shù)組中獲取值藻茂,而非創(chuàng)建對(duì)象地址,該常量數(shù)組中共存有255個(gè)值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末玫恳,一起剝皮案震驚了整個(gè)濱河市辨赐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌京办,老刑警劉巖掀序,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異惭婿,居然都是意外死亡不恭,警方通過查閱死者的電腦和手機(jī)叶雹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來换吧,“玉大人折晦,你說我怎么就攤上這事≌赐撸” “怎么了满着?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)贯莺。 經(jīng)常有香客問我风喇,道長(zhǎng),這世上最難降的妖魔是什么缕探? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任响驴,我火速辦了婚禮,結(jié)果婚禮上撕蔼,老公的妹妹穿的比我還像新娘豁鲤。我一直安慰自己,他們只是感情好鲸沮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布琳骡。 她就那樣靜靜地躺著,像睡著了一般讼溺。 火紅的嫁衣襯著肌膚如雪楣号。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天怒坯,我揣著相機(jī)與錄音炫狱,去河邊找鬼。 笑死剔猿,一個(gè)胖子當(dāng)著我的面吹牛视译,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播归敬,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼酷含,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了汪茧?” 一聲冷哼從身側(cè)響起椅亚,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舱污,沒想到半個(gè)月后呀舔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扩灯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年媚赖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了霜瘪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡省古,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丧失,到底是詐尸還是另有隱情豺妓,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布布讹,位于F島的核電站琳拭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏描验。R本人自食惡果不足惜白嘁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望膘流。 院中可真熱鬧絮缅,春花似錦、人聲如沸呼股。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彭谁。三九已至吸奴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缠局,已是汗流浹背则奥。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狭园,地道東北人读处。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像唱矛,于是被迫代替她去往敵國(guó)和親档泽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容