字串的操作

2022-06-01 05:15:08 字數 3920 閱讀 9434

通過string類的substring()方法可對字串進行擷取。有以下兩種方法:

該方法返回的是從指定的索引位置開始擷取直到該字串結尾的子串。

語法:

str.substring(int beginindex)

string str = "hello world";         //定義字串str

string substr = str.substring(3); //獲取字串,此時substr值為lo world

在字串中,空格占用乙個索引位置

字串下標是從0開始的

該方法返回的是從字串某一索引位置開始擷取至某一索引位置結束的子串。

語法:

str.substring(int beginindex,int endindex)
beginindex:開始擷取子字串的索引位置。

endindex:子字串在整個字串中的結束位置(擷取時不包括它)

例:

public class subs 

}

執行結果:

helreplace()方法可實現將指定的字元或字串替換成新的字元或字串

語法:

str.replace(char oldchar,char newchar)
oldchar:要替換的字元或字串

newchar:用於替換原來字串的內容

replace()方法返回的結果是乙個新的字串。如果字串oldchar沒有出現在該物件表示式中的字串序列中,則將原字串返回。

例:

public class newstr 

}

執行結果:

address

如果要替換的字元oldchar在字串中重複多次出現,replace()方法會將所有oldchar全部替換成newchar。

trim()方法返回字串的副本,去除前導空格和尾部空格。

語法:

str.trim()
例:

public class blak 

}

執行結果:

字串原來的長度:16

去掉空格後的長度:11

另:用replace()也可實現去除空格的操作。

startwith()方法與endswith()方法分別用於判斷字串是否以指定的內容開始或結束。這兩個方法的返回值都為boolean型別。

該方法用於判斷當前字串物件的字首是否是引數指定的字串。

語法:

str.startwith(string prefix)
prefix指作為字首的字串

該方法用於判斷當前字串物件的字首是否是引數指定的字串。

語法:

str.endswith(string suffix)
suffix指作為字尾的字串

public class startorend 

}

執行結果:

字串num1是以'22'開始的嗎?true

字串num1是以'78'結束的嗎?false

字串num2是以'22'開始的嗎?false

字串num2是以'78'結束的嗎?true

對字串物件進行比較不能簡單地使用比較運算子「==」,因為比較運算子比較的是兩個字串的位址是否相同。即使兩個字串的內容相同,兩個物件的記憶體位址也是不同的,使用比較運算子任然會返回false。

例:

string tom = new string("i am a student");

string jerry = new string("i am a student");

boolean b = (tom == jerry);

此時,b的值為false,因為字串是物件,tom、jerry是引用。

因此,要比較兩個字串內容是否相等,應使用equals()方法和equalignorecase()方法。

如果兩個字串具有相同的字元和長度,則使用equals()方法進行比較時,返回true。

語法:

str.equals(string otherstr)
其中,str、otherstr是參加比較的兩個字串物件。

使用equals()方法對字串進行比較時是區分大小寫的,而使用equalsignorecase()方法是在忽略了大小寫的情況下比較兩個字串是否相等,返回的結果仍為boolean型別。

語法:

str.equalsignorecase(string otherstr)
其中,str、otherstr是參加比較的兩個字串物件。

public class opinion 

}

執行結果:

abc equals abc :false

abc equalsignorecase abc :true

compareto()方法為按字典順序比較兩個字串。如果按字典順序此string物件位於引數字串之前,則比較結果為乙個負整數。如果按字典順序此string物件位於引數字串之後,則比較結果為乙個正整數。如果這兩個字串相等,則結果為0。

語法:

str.compareto(string otherstr)
其中,str、otherstr是參加比較的兩個字串物件。

例:

public class wordbook 

}

執行結果:

b compareto a:1

b compareto c:-1

該方法將string轉換為小寫。如果字串中沒有應該被轉換的字元,則將原字串返回;否則將返回乙個新的字串。

語法:

str.tolowercase()
其中,str是要進行轉換的字串

該方法將string轉換為大寫。如果字串中沒有應該被轉換的字元,則將原字串返回;否則將返回乙個新的字串。

語法:

str.touppercase()
其中,str是要進行轉換的字串

*使用tolowercase()方法和touppercase()方法進行大小寫轉換時,數字或非字元不受影響。

public class upandlower 

}

執行結果:

abc def

abc def

使用split()方法可以使字串按指定的分割字元或字串對內容進行分割,並將分割後的結果存放在字串陣列中。split()方法有以下兩種形式。

該方法根據給定的分割符對字串進行拆分。

語法:

str.split(string sign)
其中,sign為分割字串的分割符。

如果想定義多個分割符,可使用符號「|」。例如「,|=」表示分割符分別為「,」和「=」。

該方法可根據給定的分割符對字串進行拆分,並限定拆分的次數。

語法:

str.split(string sign,int limit)
sign:分割字串的分割符

limit:限制的分割字數

public class division 

// 對字串進行拆分,並限定拆分次數,返回字元陣列

string newstr2 = str.split(",", 2);

for (int j = 0; j < newstr2.length; j++)

}}

執行結果:

abcdef

ghigkl

abcdef,ghi,gkl

字串操作 靠字串分割字串

字串分解函式。注意strtok比較複雜。要妥善運用!也可以不用strtok函式,但要實現字串靠字串分割比較困難!注意str指向的空間必須是可讀可寫的 如陣列或動態分配的空間 不能為字串常量的指標,因為strtok改變了其中的內容。include include 功能 將str中的字串按照elemon...

字串的操作

strcpy,sprintf,memcpy的區別 對於字串拷貝來說,其實現的效率和使用的方便程度不同 strcpy 無疑是最合適的選擇 效率高且呼叫方便。snprintf 要額外指定格式符並且進行格式轉化,麻煩且效率不高。memcpy 雖然高效,但是需要額外提供拷貝的記憶體長度這一引數,易錯且使用不...

字串的操作

pragma once define string h include include using namespace std define maxsize 255 typedef struct sstring void initstring sstring s 給字串賦值 void strassi...