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 返回長度

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ù),不同則返回,完全一樣的按照長度比較

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(),理論值

長度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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容