tcl tk例項詳解 string(二)

2021-04-17 02:12:05 字數 2547 閱讀 8808

這裡對string命令中的幾個子命令使用例項進行一些解釋,以便於更加容易理解string命令中的各個子命令,本文僅對以下幾個string命令進行例項解析。分別是repeat、replace、reverse、tolower、totitle、toupper、trim、trimleft、trimright、wordend和wordstart幾個子命令。

string repeatstring count

非常簡單,返回乙個把string重複count次的字串。

% string repeat "this" 3

thisthisthis

string replacestring first last ?

newstring?

也很簡單,使用newstring替換string中的first到last的字串,如果沒有newstring,就是使用空代替。

% string replace "this is a tcltk example" 10 14 tcltk

this is a tcltk example

如果沒有newstring:

% string replace "this is a tcltk example" 10 14

this is a  example

string reversestring

返回string的反序字串:

% string reverse "this is a tcltk example"

elpmaxe ktlct a si siht

string tolowerstring ?

first? ?

last?

string totitlestring ?

first? ?

last?

string toupperstring ?

first? ?

last?

這三個命令放在一起,是因為三個命令的格式完全相同,只是實現了不同的操作。

將乙個字串全部變為小寫形式:

% string tolower "this is a tcltk example"

this is a tcltk example

將乙個字串全部變為大寫形式:

% string toupper "this is a tcltk example"

this is a tcltk example

將乙個字串裡面開頭的第乙個字母轉換為大寫形式,其他字元轉化為小寫形式:

% string totitle "this is a tcltk example"

this is a tcltk example

first和last指定了轉換的範圍,操作與上述完全相同,只是對字串的作用範圍不同。

string trimstring ?

chars?

string trimleftstring ?

chars?

string trimrightstring ?

chars?

這三個命令實現的功能類似,都是去掉chars字元,只是操作的位置有所區別。如果沒有指定chars字元,則去掉空白符(包括空格符、製表符、換行符、回車符)。trim對字串開頭和結尾都操作,trimleft只對字串開頭操作,trimright只對字串結尾操作。

% string trim "!!this is a tcltk example!!" !

this is a tcltk example

% string trimleft "!!this is a tcltk example!!" !

this is a tcltk example!!

% string trimright "!!this is a tcltk example!!" !

!!this is a tcltk example

string wordendstring charindex

string wordstartstring charindex

這兩個命令類似,wordend是找出給定索引的字元所在的單詞的下乙個單詞的第乙個字元的索引,wordstart是找出給定索引的字元所在的單詞的第乙個字元的索引。用語言描述比較難理解,下面舉例說明就非常清晰了:

% string wordend "this is a tcltk example" 1215

12索引為tcltk中的l字元,那麼返回的結果就是l所在的詞tcltk的下乙個詞example中的第乙個字元e的索引,即15。

% string wordstart "this is a tcltk example" 1210

12索引為tcltk中的l字元,那麼返回的結果就是l所在的詞的第乙個字元t的索引,即10。

tcl tk例項詳解 string(三)

這裡對string命令中的幾個子命令使用例項進行一些解釋,以便於更加容易理解string命令中的各個子命令,本文僅對三個比較複雜的命令進行例項解析。分別是is class map和match三個子命令。string isclass strict?failindexvarname?string 如果s...

tcl tk例項詳解 eval

eval命令本身使用非常簡單,但是用處非常大,如果需要動態的構造命令,那麼必須使用eval命令。eval命令參考 命令格式 evalarg arg 如果是乙個引數,那麼相當於把這個引數當作命令來執行,如果有多個引數,eval命令會把多個引數以concat命令風格連線起來然後再執行命令。舉乙個最簡單的...

tcl tk例項詳解 catch和error

這兩個命令可以成對出現,catch命令捕獲乙個錯誤,error命令產生乙個錯誤。catch命令參考 error命令參考 catch命令可以用來捕獲乙個錯誤,乙個沒有捕獲的錯誤將終止指令碼的執行。error會產生乙個錯誤,error命令產生的錯誤如果沒有被catch捕獲將會導致指令碼的終止。catch...