標籤:
轉載:http://www.cnblogs.com/pchmonster/archive/2011/12/16/2290034.html
結合這個部落格一起學習:http://www.cnblogs.com/xumenger/p/4427957.html
在實際編程中,這些操作會經常用到的。開始你不用著急全部記住它們,只要知道有這些功能就行,需要用到的時候能查到即可。
1、用 + 操作符實現字串的串連
123456789101112 |
var X: Integer ; S1: string ; S2: string ; begin S1 := ‘Hello‘ ; S2 := ‘World‘ ; ShowMessage(S1 + ‘ ‘ + S2); { 串連了三個字串S1,S2,和空白字元串} X := 2011 ; ShowMessage( ‘今年是 ‘ + IntToStr(X)); { IntToStr函數將整型轉換為字串類型} end ; |
顯示的訊息框依次為:
2、腳標操作符[ ]
用腳標操作符可以從一個字串中提取個別字元。
12345678 |
var S1: string ; S2: string ; begin S1 := ‘Hello World‘ ; S2 := S1[ 1 ]; ShowMessage(S2); { 將擷取S1字串的第一個字元H} end ; |
字串是從1開始的,字串中的第一個字元是在S[1]中,短字串(ShortString)的0元素(S[0])包含了字串的長度,而不是字串的第一個字元,在長字串(AnsiString)和寬字元串(WideString)中不能存取X[0]。
3、字串中的控制字元
字串常量( string literal or string constant)一般用兩個單引號引起來,如果要字串本身也有單引號,需要用兩個單引號表示,如下:
12345 |
‘BORLAND‘ { BORLAND } ‘You‘ ‘ll see‘ { You‘ll see } ‘‘ ‘‘ { ‘ } ‘‘ { null string } ‘ ‘ { a space } |
在字串中可以嵌入控制字元,當需要在字串中增加一些非列印字元時,這個功能是非常有用的。字串中嵌入控制字元用以發送給串列裝置。
用字元#就可以為字串增加控制字元,例如:
12345678 |
var S1: string ; S2: string ; begin S1 := # 89 # 111 # 117 ; S2 := ‘You‘ ; { 實際上S1和S2是一樣} ShowMessage(S1 + # 13 # 10 + S2); { #13#10表示換行斷行符號carriage-return-line-feed} end ; |
運行後顯示效果如下:
4、用多行代碼擴充字元串
用單引號引起來的字串叫做字串常量( string literal or string constant),其最多隻能有255個字元。
為了增強可讀性和可維護性,把一個字串分成多行是必要的,需要用到+操作符,例如:
1234 |
ShowMessage( ‘This is very, very long message ‘ + ‘that seems to go on and on forever. In order ‘ + ‘to make the code more readable the message has ‘ + ‘been split across several lines of code.‘ ); |
5、字串的比較
字串比較操作符包括:=(等於)、<>(不等)、<(小於)、>(大於)、<=(小於或等於)、>=(大於或等於)。
這些操作符比較字串都是基於ASCII數值。在大部分的情況下,只需要用等號來判別字串是否等於一個定值或者不等於一個定值。例如:
123456789 |
var S1: string ; begin S1 := ‘Hello World‘ ; if S1 = ‘Hello World‘ then ShowMessage( ‘相等‘ ) { 將顯示“相等”的訊息框} else ShowMessage( ‘不相等‘ ); end ; |
運行結果如下:
6、字串操作的函數
基本常用的字串操作函數都定義在System或者SysUtils單元中,我們就用一段範例講解下基本常用的字串函數的用法。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
const S1: ShortString = ‘Hello World‘ ; var X: Integer ; SP: PChar ; S2: string ; RS: string ; { 顯示最後的結果} begin SP := ‘Pchar‘ ; //copy函數擷取從最後一個字元開始,共一個字元 S2 := Copy(S1, Length(S1), 1 ); { S2 = ‘d‘} RS := RS + S2 + # 13 # 10 ; //刪除字串中指定位置字元的Delete函數 S2 := S1; Delete(S2, 1 , 1 ); { S2 = ‘ello World‘} RS := RS + S2 + # 13 # 10 ; //格式化字串Format函數 S2 := Format( ‘Time is : %d:%d:%d‘ , [ 12 , 15 , 40 ]); { S2 = ‘Time is : 12:15:40‘} {%d表示將在這裡放置一個整數,[2011]表示放置2011這個數值} RS := RS + S2 + # 13 # 10 ; //數值轉換為字串InttoStr函數 X := 65535 ; S2 := IntToStr(X); { S2 = ‘10‘} RS := RS + S2 + # 13 # 10 ; //擷取字串長度Length函數 X := Ord(S1[ 0 ]); { X = 11} X := Length(S1); { 因為S1為ShortString類型,所以可以通過S1[0]來擷取字元長度} RS := RS + IntToStr(X) + # 13 # 10 ; //轉化為小寫LowerCase函數 S2 := LowerCase(S1); { S2 = ‘hello world‘} RS := RS + S2 + # 13 # 10 ; //轉化為大寫UpperCase函數 S2 := UpperCase(S1); { S2 = ‘HELLO WORLD‘} RS := RS + S2 + # 13 # 10 ; //返回指定字元重複的字串 S2 := StringOfChar( ‘A‘ , 10 ); { S2 = ‘AAAAAAAAAA‘} RS := RS + S2 + # 13 # 10 ; //StrPas把一個空結尾字串(PChar或字元數組)轉化為Pascal字串 S2 := StrPas(SP); { S2 = ‘Pchar‘} RS := RS + S2 + # 13 # 10 ; //StrPCopy把一個Pascal字串轉化為空白結尾字串 StrPCopy(SP, ‘World Hello‘ ); { SP = ‘World Hello‘} RS := RS + StrPas(SP) + # 13 # 10 ; //Trim用於去除字串前後的空格和控制字元 S2 := # 13 # 10 ‘ Hello World ‘ ; S2 := Trim(S2); { S2 = ‘Hello World‘} RS := RS + S2 + # 13 # 10 ; //StringReplace用於替換字串中制定字元 S2 := ‘AABBCC‘ ; S2 := StringReplace(S2, ‘A‘ , ‘E‘ , [rfReplaceAll]); RS := RS + S2 + # 13 # 10 ; ShowMessage(RS); end ; |
運行結果如下:
以上代碼均在Delphi7中測試成功。
Delphi字串的基本操作--轉