Tcl的原始数据类型是字符串,这些字符串可以包含字母数字字符,仅数字,布尔值甚至二进制数据,Tcl使用16位Unicode字符,字母数字字符可以包含字母,包括非拉丁字符,数字或标点符号。
与其他语言不同,在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')。
以下是显示一些转义序列字符的示例-
#!/usr/bin/tclsh puts "Hello\tWorld\n\nLearnfk";
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
Hello World Learnfk
下表列出了字符串函数列表-
Sr.No. | Methods & Remark |
---|---|
1 | compare string1 string2 比较string1和string2。如果相等,则返回0;如果string1在string2之前,则返回-1;否则返回1。 |
2 | first string1 string2 返回string2中第一次出现的索引。如果找不到,则返回-1。 |
3 | index string index 返回索引处的字符。 |
4 | last string1 string2 返回字符串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? 从string字符串的首尾删除掉了字符集合trimcharacters中的字符后的字符串. 如果没有给出trimcharacters, 那么将删除掉 spaces, tabs, newlines, carriage returns 这些字符. |
11 | trimleft string ?trimcharacters? 同 trim string ?trimcharacters? ,不过只删除左边的字符 |
12 | trimright string? trimcharacters? 同 trim string ?trimcharacters? , 不过只删除右边的字符 |
13 | wordend findstring index 在索引中包含该字符的单词之后,返回该字符的findstring中的索引。 |
14 | wordstart findstring index 返回包含在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 after\'s1\'."; }
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
-1 String 's1' comes before 's2'. String 's2' comes after '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]
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
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]
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
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]
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
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]
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
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]
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
Matching pattern s2 in s1 1 Matching pattern tcl in s1 0
#!/usr/bin/tclsh set s1 "Hello" append s1 " World" puts $s1
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
Hello World
下表显示了Tcl中可用的格式说明符列表-
Operator | Remark |
---|---|
%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]
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
43.500000 4.350000e+01 4 tuts Tcl Language 28
#!/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]
编译并执行上述代码后,将产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html
来源:LearnFk无涯教程网
1 1 0 1
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Tony Bai · Go语言第一课 -〔Tony Bai〕