字串的學習

2021-06-14 20:47:14 字數 2627 閱讀 5005

1> 「==」與「equals」的區別

「==」判斷的是兩個字串物件在記憶體中的首位址,就是判斷是否是同乙個字串物件;

而equals()判斷的是兩個字串物件的值。

2> 字串的連線(concat  >>>  等同於「+」的作用)

string s1= new string("你好,");

string s2= new string("張三");

string s3= s1.concat(s2);   >>>>> concat用於字串的連線

system.out.println(s3);      >>>>>輸出結果為:你好,張三

3> 字串的提取和查詢

(1)indexof()     (0開始,值是從前往後數)

例如:string s = "我是誰誰是我";

0  1 2  3 4  5

int index = s.indexof('是');   >>>>  列印index結果為:1;

(2)lastindexof()     (0開始,值是 從前  往後  數)

例如:string s = "我是誰誰是我";

0  1 2  3 4  5

int index = s.lastindexof('是');   >>>>  列印index結果為:4;

(3)substring(int index)     (0開始提取,從index開始<=    提取的字串  <=最後)

例如:string s = "我是誰誰是我";

0  1 2  3 4  5

string index = s.substring(1);   >>>>  列印index結果為:是誰誰是我;

(4)substring(int beginindex,int endindex)     (0開始提取,從index開始<=    提取的字串  《最後)

例如:string s = "我是誰誰是我";

0  1 2  3 4  5

string index = s.substring(1,5);   >>>>  列印index結果為:是誰誰是;   >>>>也就是說最後乙個字元不列印!!

4> 字串的拆分

string words = "我 是 誰 我";

string print = new string[5];   或者為:  string print = null;也可以出結果

print = words.split(" ");

for (string string : print)

結果顯示:我    \n   是   \n      誰    \n  我       (\n 表示換行了)

split(".")中不能為「 . 」,不然會沒效果!!!

api的原文解釋如下:

split

public string split(string regex)根據給定正規表示式的匹配拆分此字串。 

返回:字串陣列,它是根據給定正規表示式的匹配拆分此字串確定的 

. 任何字元(與行結束符可能匹配也可能不匹配) 

???這牽扯到正規表示式。在正規表示式裡。「。」代表任意字元,意思就是你現在相當於用任意字元對

字串分割。應該用「\\.」才對

string words = "我.是.誰.我";

string print = new string[5];

//語法  字串名.split(string separator, int limit);    int limit可省略不寫

//返回的字串陣列的元素個數由sting字串的分隔符的個數決定

print = words.split("\\.");       >>>>> 如果是這一句,輸出結果顯示:我    \n   是   \n      誰    \n  我  (\n 表示換行了)

//返回的字串陣列的元素個數由limit(用來限制返回陣列中的元素個數的)的大小決定決定             

print = words.split("\\.",3);   >>>>> 如果是這一句,輸出結果顯示:我    \n   是   \n      誰我  (\n 表示換行了)

for (string string : print)

總結:完美執行!學習這東西需要多嘗試,多討論,多學習,這樣進步空間才會很大!

5>stringbuffer類

stringbuffer  sb = new stringbuffer("我是誰");

(1)字串(sb).tostring();      >>>>轉換為string型別

string s = sb.tostring();

(3)字串(sb).insert(位置》int型別,引數》沒規定型別);  

stringbuffer sb = new stringbuffer("我是誰"); 

sb.insert(1,4); system.out.println(sb);   

>>>>> sb結果:我4是誰;

sb.insert(1,「_」); system.out.println(sb);   

>>>>> sb結果:我_是誰;

for (int i = sb.length()-1; i >0; i--)

>>>>> sb結果:我.是.誰;

ORACLE in 字串,字串,字串

因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...

字串的學習(1)

c語言裡並沒有字串這種資料型別,而是利用字元陣列加以特殊處理 末尾加 0 來表示乙個字串,事實上資料結構裡的串就是乙個儲存了字元的鍊錶,並且封裝實現了各種字串的常用操作。主要闡述 bf演算法和kmp演算法 串的常用操作 strcpy s1,s2 複製字串,將s2的內容複製到s1,函式原型strcpy...

字串的統計字串

給定乙個字串,統計每乙個字母的出現次數 比如aabbccc,列印出來就是a 2 b 2 c 3 思路還是採取遍歷,注意這幾個題的思路都比較類似 要注意這裡的sstream 這裡的clear 並非清空了緩衝區,而只是重置標誌,如果要重置緩衝區,則應為ss.str include include usi...