求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 
 

Tcl 教程
Tcl环境设置
Tcl特殊变量
Tcl基本语法
Tcl命令
Tcl数据类型
Tcl变量
Tcl运算符
Tcl决策
Tcl循环
Tcl数组
Tcl字符串
Tcl列表
Tcl字典
Tcl过程
Tcl包
Tcl命名空间
Tcl文件I/O
Tcl错误处理
Tcl内置函数
Tcl正则表达式
 
 

TCL字符串
946 次浏览
38次  

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

字符串命令

子命令字符串命令列表列如下表。

一些常用的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说明如下列表。

一些简单下面的例子给出。

#!/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

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



946 次浏览
38次
 捐助