TCL字符串
Tcl 的原始數據類型是字符串,我們常常可以在Tcl找到引用字符串的唯一語言。這些字符串可以包含字母數字字符,數字,布爾值,甚至是二進制數據。 TCL採用16位Unicode字符和字母數字字符,可以包含字母包括非拉丁字符,數字或標點符號。
布爾值,可以表示爲1,yes 或 true 爲真值和0,no 或 false 爲假值。
字符串表示
不同於其他語言,在TCL,只有一個字時,不需要包含雙引號。示例如下,
#!/usr/bin/tclsh set myVariable hello
puts $myVariable
當上述代碼被執行時,它會產生以下結果。
hello
當要表示多個字符串,我們可以使用雙引號或大括號。它如下所示。
#!/usr/bin/tclsh set myVariable "hello world" puts $myVariable set myVariable {hello world} puts $myVariable
當上述代碼被執行時,它會產生以下結果。
hello world
hello world
字符串轉義序列
字符文字可以是一個普通的字符(例如,'x'),轉義序列(如「\t'),或通用字符(例如,'\u02C0')。
Tcl有一些字符,當他們前面加一個反斜槓他們將有特殊的含義,它們被用來表示類似的換行符(\n)或製表符(\t)。在這裏,有一些轉義序列代碼的列表:
轉義序列
意思
\\
\ 字符
\'
' 字符
\"
" 字符
\?
? 字符
\a
警報或鈴
\b
退格
\f
換頁
\n
新一行
\r
回車
\t
水平製表
\v
垂直製表
以下爲例子來說明一些轉義字符序列:
#!/usr/bin/tclsh puts("Hello\tWorld\n\n");
讓我們編譯和運行上面的程序,這將產生以下結果:
Hello World
字符串命令
子命令字符串命令列表列如下表。
SN
方法及描述
1
compare string1 string2
比較字string1和string2字典順序。如果相等返回0,如果string1在string2出現之前返回-1,否則返回1。
2
string1 string2
返回string1中第一次出現string1索引的位置。如果沒有找到,返回-1。
3
index string index
返回索引的字符。
4
last string1 string2
返回索引string1在string2中出現的最後一次。如果沒有找到,返回-1。
5
length string
返回字符串的長度。
6
match pattern string
返回1,如果該字符串匹配模式。
7
range string index1 index2
返回指定索引範圍內的字符串,index1到index2。
8
tolower string
返回小寫字符串。
9
toupper string
返回大寫字符串。
10
trim string ?trimcharacters?
刪除字符串兩端的trimcharacters。默認trimcharacters是空白。
11
trimleft string ?trimcharacters?
刪除字符串左側開始的trimcharacters。默認trimcharacters是空白。
12
trimright string ?trimcharacters?
刪除字符串左端trimcharacters。默認trimcharacters是空白。
13
wordend findstring index
返回索引字符findstring包含字符索引單詞。
14
wordstart findstring index
返回findstring中第一個字符的含有索引中的字符索引的單詞。
一些常用的Tcl字符串子命令的例子在下面給出。
字符串比較
#!/usr/bin/tclsh set s1 "Hello" set s2 "World" set s3 "World" puts [string compare s1 s2] if {[string compare s2 s3] == 0} { puts "String \'s1\' and \'s2\' are same."; } if {[string compare s1 s2] == -1} { puts "String \'s1\' comes before \'s2\'."; } if {[string compare s2 s1] == 1} { puts "String \'s2\' comes before \'s1\'."; }
讓我們編譯和運行上面的程序,這將產生以下結果:
-1
String 's1' comes before 's2'.
String 's2' comes before 's1'.
字符串索引
#!/usr/bin/tclsh set s1 "Hello World" set s2 "o" puts "First occurrence of $s2 in s1" puts [string first $s2 $s1] puts "Character at index 0 in s1" puts [string index $s1 0] puts "Last occurrence of $s2 in s1" puts [string last $s2 $s1] puts "Word end index in s1" puts [string wordend $s1 20] puts "Word start index in s1" puts [string wordstart $s1 20]
讓我們編譯和運行上面的程序,這將產生以下結果:
First occurrence of o in s1
4
Character at index 0 in s1
H
Last occurrence of o in s1
7
Word end index in s1
11
Word start index in s1
6
字符串長度
#!/usr/bin/tclsh set s1 "Hello World" puts "Length of string s1" puts [string length $s1]
讓我們編譯和運行上面的程序,這將產生以下結果:
Length of string s1
11
處理大小寫
#!/usr/bin/tclsh set s1 "Hello World" puts "Uppercase string of s1" puts [string toupper $s1] puts "Lowercase string of s1" puts [string tolower $s1]
讓我們編譯和運行上面的程序,這將產生以下結果:
Uppercase string of s1
HELLO WORLD
Lowercase string of s1
hello world
修整字符
#!/usr/bin/tclsh set s1 "Hello World" set s2 "World" puts "Trim right $s2 in $s1" puts [string trimright $s1 $s2] set s2 "Hello" puts "Trim left $s2 in $s1" puts [string trimleft $s1 $s2] set s1 " Hello World " set s2 " " puts "Trim characters s1 on both sides of s2" puts [string trim $s1 $s2]
讓我們編譯和運行上面的程序,這將產生以下結果:
Trim right World in Hello World
Hello
Trim left Hello in Hello World
World
Trim characters s1 on both sides of s2
Hello World
匹配字符串
#!/usr/bin/tclsh set s1 "test@test.com" set s2 "*@*.com" puts "Matching pattern s2 in s1" puts [string match "*@*.com" $s1 ] puts "Matching pattern tcl in s1" puts [string match {tcl} $s1]
讓我們編譯和運行上面的程序,這將產生以下結果:
Matching pattern s2 in s1
1
Matching pattern tcl in s1
0
Append 命令
#!/usr/bin/tclsh set s1 "Hello" append s1 " World" puts $s1
讓我們編譯和運行上面的程序,這將產生以下結果:
Hello World
Format 命令
Tcl顯示格式format說明如下列表。
指示符
使用
%s
字符串表示
%d
整數表示
%f
浮點表示
%e
指數形式浮點表示
%x
十六進制表示
一些簡單下面的例子給出。
#!/usr/bin/tclsh puts [format "%f" 43.5] puts [format "%e" 43.5] puts [format "%d %s" 4 tuts] puts [format "%s" "Tcl Language"] puts [format "%x" 40]
讓我們編譯和運行上面的程序,這將產生以下結果:
43.500000
4.350000e+01
4 tuts
Tcl Language
28
Scan命令
scan命令用於分析基於對格式說明的字符串。一些例子如下所示。
#!/usr/bin/tclsh puts [scan "90" {%[0-9]} m] puts [scan "abc" {%[a-z]} m] puts [scan "abc" {%[A-Z]} m] puts [scan "ABC" {%[A-Z]} m]
當上述代碼被編譯和執行時,它產生了以下結果:
1
1
0
1