Java字串String詳解

2021-07-28 13:39:13 字數 3669 閱讀 9596

-----------siwuxie095

1、string字串

例項化string物件:

(1)直接賦值,如:

string str="hello";

(2)使用關鍵字

new,如:

由圖可知:使用

new的方式在堆記憶體中開闢了兩個空間,

第乙個 "hello",物件 str 沒有指向,無用

等待**,

第二個 "hello",被

str 指向,有用。

所以 直接賦值(只開闢了乙個空間) 的方式更常用和合理,

可以節省一些空間

string的內容比較

**:

packagecom.siwuxie095.string;

public classstringdemo01 }

執行一覽:

顯然,雙等是錯誤的,而使用方法

equals()是正確的

〔因為雙等比較的是記憶體位址,第一種方式直接賦值只產生了乙個位址,

第二種new 的方式卻產生了兩個位址,注定位址是不同的,而 equals()

比較的是內容〕

字串的內容不可更改

如:

**:

packagecom.siwuxie095.string;

public classstringdemo02 }

執行一覽:

"hello"、"world"、"hello world!" 分別開闢了三個空間,

str 指向 "hello" 的連線斷開,繼而指向 "hello world!",

即 "hello" 本身沒有變化,變的只是

str 中對堆記憶體位址

的指向

2、string字串常用方法

string字串的方法較多,可以根據api給出的方法去做測試,下面是常用方法:

(1)字串長度:

length()「陣列中的是 length 屬性」

(2)字串轉換陣列:

tochararray()

(3)從字串中取出指定位置的字元:

charat()

(4)字串與byte陣列的轉換:

getbytes()

(5)過濾字串中存在的字元:

indexof()

(6)去掉字串的前後空格:

trim() 「空格易影響到對字串的判斷,需適時去掉」

(7)從字串中取出子字串:

substring()

(8)大小寫轉換:

tolowercase() touppercase()

(9)判斷字串的開頭結尾字元:startwith() endswith()

(10)替換string字串中的乙個字元:replace()

**:

packagecom.siwuxie095.array;

public classstringdemo03

//(3)

system.out.println("\n"+str.charat(0));

//(4)

bytebytes=str.getbytes();

for(inti = 0; i < bytes.length; i++)

//(5)

若存在,返回當前字元的位置,否則返回

-1system.out.println(str.indexof("x"));

//(6)

str=" siwuxie095";

system.out.println(str.trim());

//... }}

3、stringbuffer

stringbuffer,是string的緩衝區,本身也是操作字串用的,

但與string不同,stringbuffer是可以更改的

〔string是不可更改的,每次看到更改內容,其實都是在開闢新的

記憶體空間,非常耗資源,此時可以使用stringbuffer〕

stringbuffer是乙個操作類,所以必須通過例項化進行操作

**:

packagecom.siwuxie095.string;

public classstringbufferdemo01

public staticvoidtell(stringbuffer s) }

執行一覽:說明stringbuffer是可以更改的

對比:

packagecom.siwuxie095.string;

public classstringbufferdemo02

public staticvoidtell(string s) }

執行一覽:說明string是不可更改的

stringbuffer的常用方法:

**:

packagecom.siwuxie095.string;

public classstringbufferdemo03 }

執行一覽:

stringbuffer類的應用:

為什麼有的時候要用stringbuffer,而不用string:

**:

packagecom.siwuxie095.string;

public classstringbufferdemo04

system.out.println(str);

//使用

stringbuffer

不會耗費資源,且會更快

//所以很多時候使用

stringbuffer

stringbuffer sb=newstringbuffer();

for(inti = 0; i < 100; i++)

system.out.println(sb);}}

4、stringbuilder

乙個可變的字串行,該類被設計作用stringbuffer的乙個簡易替換,

用在字串緩衝區被單個執行緒使用的時候,建議優先考慮該類,速度

比stringbuffer要快

但如果涉及到執行緒安全方面,建議使用stringbuffer

常用方法:

【made by siwuxie095】

Java初階 字串String

一 string字串 1 直接賦值 2 使用關鍵字new 用new關鍵字給string賦值,實際在堆記憶體中開闢兩塊空間各儲存兩個 hello 3 string內容比較 string str hello string str1 new string hello system.out.println ...

String詳解 建立字串

字串常用構造方法 public class 2 string s3 new string bytes 把變數名字放進來,固定寫法 system.out.println s3 abcd string已經重寫了tostring方法 4string s4 new string bytes,1,2 陣列名,...

JAVA字串詳解

一 字串替換 1 replace方法 該方法的作用是替換字串中所有指定的字元,然後生成乙個新的字串。經過該方法呼叫以後,原來的字串不發生改變。例如 string s dudaduda string s1 s.replace a 1 2 replaceall方法 該 的作用是將字串s中所有的字元a替換...