關於字串的總結

2021-07-01 22:14:34 字數 3626 閱讀 7135

1、字串的概念:

a) 字串或串(string)

是由數字、字母、下劃線組成的一串字元。

b) 一般記為 s=

「a1a2

···an

」(n>=0)

。它是程式語言中表示文字的資料型別。

c) 通常以串的整體作為操作物件,如:在串中查詢某個子串、求取乙個子串、在串的某個位置上插入乙個子串以及刪除乙個子串等。兩個字串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q

是兩個串,求q在

p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的儲存方式是順序儲存方式和鏈結儲存方式。

2、string類

a) 獲取

i. 獲取字串的長度:int length()

ii. 根據位置獲取位置上的某個字元 char charat(int index)

iii. 根據字元獲取位置: 

1. int indexof(int ch):返回

ch在字串第一次出現的位置

2. int indexof(int ch,int fromindex):從

fromindex

指定位置開始獲取

ch在字串的位置

3. int indexof(string str):返回是

str在字串中第一次出現的位置

4. int indexof(string str,int fromindex):從

fromindex

指定位置開始獲取

str在字串中出現的位置

5. int lastindexof(int ch):反向索引

b) 判斷

i. boolean contains(str):字串中是否包含某乙個字串

ii. boolean isempty():字串中是否有內容

iii. boolean startwith(str):字串是否以指定內容開頭

iv. boolean endswith(str):字串是否以指定內容結尾

v. boolean equals(str):判斷字串內容是否相同

vi. boolean equalsignorecase(string str):判斷內容是否相同,並忽略大小寫

c) 轉換

i. 將字元陣列轉換成字串

1. 建構函式

a) string(

char value)

b) string (char,offset,count):將字元陣列一部分轉換成字串

2. 靜態方法

a) static string copyvalueof(char value);

b) static string(char,int offset,int count);

ii. 將字串轉換成字元陣列

1. char tochararray();

iii. 將位元組陣列轉換成字串

1. string(byte value);

2. string(byte value,int offset,int count);

iv. 將字串轉換成位元組陣列

1. byte  getbytes(string str);

v. 將基本資料型別轉成字串

1. static string valuesof(int value)

2. static stirng valuesof(double value)

vi. 將字串轉成大寫或者小寫

1. string touppercase();

2. string tolowercase();

d) 替換

i. string replace(char oldchar,char newchar)

ii. string replace(charsequence target,charsequence replacement)

e) 切割

i. string split(regex)

f) 子串

i. string substring(begin)

ii. string substring(begin,end)//包括頭不包括尾

g) 去空格

i. string trim()

h) 比較

i. compareto(string str);

3、stringbuffer

a) 儲存

ii. stringbuffer insert(index,data);//可以將資料插在指定位置

b) 刪除

i. stringbuffer delete(start,end)//刪除緩衝區的資料,包含

start

,不含end

ii. stringbuffer deletecharat(index);//刪除知道那個位置的字元

c) 獲取

i. char charat(int index0

ii. int indexof(string str)

iii. int lastindexof(string str)

iv. int length()

v. string substing(int start,int end)

d) 修改

i. stringbuffer replace(int start,int end,string str)

ii. setcharat(int intdex,char ch)

e) 反轉

stringbuffer reverse()

f) 將緩衝區中指定資料儲存到指定陣列中

void getchars(int srcbeing int srcend,char dst,int dstbegin);

4、stringbuilder

a) jdk 1.5版本之後出現,與

stringbuffer

區別是,它是執行緒不同步,而

stringbuffer

是執行緒同步的。

b) 在執行速度方面的比較:stringbuilder >  stringbuffer   

c) stringbuffer與

stringbuilder

,他們是字串變數,是可改變的物件,每當我們用它們對字串做操作時,實際上是在乙個物件上操作的,不像

string

一樣建立一些物件進行操作,所以速度就快了。

d) stringbuilder:執行緒非安全的;

stringbuffer

:執行緒安全的

e)  當我們在字串緩衝去被多個執行緒使用是,jvm

不能保證

stringbuilder

的操作是安全的,雖然他的速度最快,但是可以保證

stringbuffer

是可以正確操作的。當然大多數情況下就是我們是在單執行緒下進行的操作,所以大多數情況下是建議用

stringbuilder

而不用stringbuffer

的,就是速度的原因。

5、對於三者使用的總結:

1.如果要操作少量的資料用 

string

2.單執行緒操作字串緩衝區 下操作大量資料 用

stringbuilder

3.多執行緒操作字串緩衝區 下操作大量資料 用

stringbuffer

關於字串轉換的總結

不同編碼的字串轉換的方法網上挺多的,但是能用的就不多了,在此總結一下常用的字串轉換方法 有些是自己摸索的,有些是看微軟例子程式知道的 不足的轉換我會在以後的日誌裡加上的 wchar t轉換為char char轉換為wchar t tchar char和wchar t 與 bstr t互 cstrin...

關於字串的處理總結

常見的字串型別 char wchar t cstring string 關於字串處理的函式,具體例子 strcat str1,str2 tcslen str 獲得字串長度 tcsrchr str,l 反向搜尋獲得最後乙個tchar的位置 stprintf tchar buffer,const tch...

關於字串

一些基本概念 用字元陣列儲存這麼乙個字串 char str hello world 然後我們應該知道,1.陣列的大小是12 字串字元個數 1 最後乙個元素為 0 用於標記字串的結束。0 不是數字0,它是非列印字元,其ascii碼值為0 2.若使用如下定義 char str 100 hello wor...