Tcl - 字符串(Strings)

Tcl - 字符串(Strings) 首页 / Tcl/Tk入门教程 / Tcl - 字符串(Strings)

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中可用的格式说明符列表-

OperatorRemark
%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

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]

编译并执行上述代码后,将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tcl-strings.html

来源:LearnFk无涯教程网

1
1
0
1

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学游戏开发 -〔蔡能〕

从0开始学大数据 -〔李智慧〕

编辑训练营 -〔总编室〕

分布式协议与算法实战 -〔韩健〕

深入浅出云计算 -〔何恺铎〕

跟月影学可视化 -〔月影〕

手机摄影 -〔@随你们去〕

Go 语言项目开发实战 -〔孔令飞〕

Tony Bai · Go语言第一课 -〔Tony Bai〕

好记忆不如烂笔头。留下您的足迹吧 :)