|
Tcl-字符串时间:2025-05-10 字符串 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)。在这里,有一些转义序列代码的列表: 以下为例子来说明一些转义字符序列: #!/usr/bin/tclsh puts("Hello\tWorld\n\n"); 让我们编译和运行上面的程序,这将产生以下结果: Hello World
字符串命令 子命令字符串命令列表列如下表。
字符串比较 #!/usr/bin/tclsh set s1 "Hello" set s2 "World" set s3 "World" puts [string compare s1 s2] if {[string compare s1 s2] == 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] # s1在s2中第一次出现的位置索引 puts "Character at index 0 in s1" puts [string index $s1 0] # s1在索引值为0处的字符 puts "Last occurrence of $s2 in s1" puts [string last $s2 $s1] # s1在s2中最后一次出现的位置索引 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说明如下列表。
一些简单下面的例子给出。 #!/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 |