Tcl 的原始数据类型是字符串,我们常常可以在Tcl找到引用字符串的唯一语言。这些字符串可以包含字母数字字符,数字,布尔值,甚至是二进制数据。 TCL采用16位Unicode字符和字母数字字符,可以包含字母包括非拉丁字符,数字或标点符号。

布尔值,可以表示为1,yes 或 true 为真值和0,no 或 false 为假值。

字符串表示

不同于其他语言,在TCL,只有一个字时,不需要包含双引号。示例如下,

#!/usr/bin/tclshset myVariable hello
puts $myVariable

当上述代码被执行时,它会产生以下结果。

hello

当要表示多个字符串,我们可以使用双引号或大括号。它如下所示。

#!/usr/bin/tclshset 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/tclshputs("Hello\tWorld\n\n");

让我们编译和运行上面的程序,这将产生以下结果:

Hello   World

字符串命令

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

SN 方法及描述
1

compare string1 string2

比较字string1和string2字典顺序。如果相等返回0,如果string1在string2出现之前返回-1,否则返回1。

2

first 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/tclshset 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/tclshset 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/tclshset s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]

让我们编译和运行上面的程序,这将产生以下结果:

Length of string s1
11

处理大小写

#!/usr/bin/tclshset 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/tclshset 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 WorldWorld
Trim characters s1 on both sides of s2
Hello World

匹配字符串

#!/usr/bin/tclshset 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/tclshset s1 "Hello"
append s1 " World"
puts $s1

让我们编译和运行上面的程序,这将产生以下结果:

Hello World

Format 命令

Tcl显示格式format说明如下列表。

指示符 使用
%s 字符串表示
%d 整数表示
%f 浮点表示
%e 指数形式浮点表示
%x 十六进制表示

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

#!/usr/bin/tclshputs [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/tclshputs [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

初识Tcl(七):Tcl 字符串相关推荐

  1. Python编程基础:第七节 字符串切片String Slicing

    第七节 字符串切片String Slicing 前言 实践 前言 我们有时候需要对一个字符串进行切片,取其一部分作为新的字符串进行处理.例如从姓名中分别提取姓和名,从网站域名中提取网站名称等等. 实践 ...

  2. tcl计算机语言,TCL语言

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! Tcl (最早称为"工具命令语言""Tool Command Language", 但 ...

  3. tcl mysql_MySQL·TCL语言

    TCL语言就是我们所说的事务控制语言.首先事务的定义就是:一条或者多条SQL语句所组成的一个执行单位,且该组sql语句要么执行要么都不执行.事务有四大特性(ACID),分别为: (1).原子性(A): ...

  4. linux 安装tcl命令,TCL/TK Linux下安装 | 勤奋的小青蛙

    原创文章,转载请注明: 转载自勤奋的小青蛙 本文链接地址: TCL/TK Linux下安装 在Linux下安装TCL/TK,可以有编译源代码的方式安装,也可以有直接通过二进制压缩包进行解压缩安装,本文 ...

  5. python第七天--字符串的方法与注释

    capitalize()   把字符串的第一个字符改为大写 casefold()   把整个字符串的所有字符改为小写 center(width)   将字符串居中,并使用空格填充至长度width的新字 ...

  6. python sorted下标_Python学习教程(Python学习路线):第七天-字符串和常用数据结构

    Python学习教程(Python学习路线):字符串和常用数据结构 使用字符串 第二次世界大战促使了现代电子计算机的诞生,当初的想法很简单,就是用计算机来计算导弹的弹道,因此在计算机刚刚诞生的那个年代 ...

  7. Python实战从入门到精通第七讲——字符串与文本1之字符串开头或结尾匹配

    通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme等等. 检查字符串开头或结尾的一个简单方法是使用 str.startswith() 或者是 str.endswith( ...

  8. #python学习笔记(七)#字符串

    目录 1 A string is a sequence 2 Strings are immutable 3 Looping the string 4 String comparision 5 Stri ...

  9. python基础学习七:字符串操作

    一.认识字符串 字符串是 Python 中最常⽤的数据类型.我们⼀般使⽤引号来创建字符串.创建字符串很简单,只要为变量分配⼀个值即可. a = 'hello world' b = "abcd ...

  10. 宇文成 Python 第七章 字符串与正则表达式

    字符串综合训练 #!/usr/bin/python -- coding:utf-8 -- @Author : YuWenChen @Time : 2020/10/9 19:58 编写一个Python程 ...

最新文章

  1. 让浏览器开挂的插件,测评师教你如何选
  2. SQL Server索引设计 第五篇
  3. [js高手之路]设计模式系列课程-发布者,订阅者重构购物车
  4. Hibernate的命名查询(NamedQuery)
  5. Enterprise Library1.0 -- DataAccess Application Block
  6. 多态部分作业 1.按要求编写Java程序:(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);
  7. plsql developer导入导出序列方法
  8. 记一次Hbase数据迁移和遇到的问题
  9. oracle频,Oracle动作频频 Java或浴火重生
  10. Myeclipse8.5 反编译插件 jad 安装
  11. mysql表导入redis_MySQL数据导入Redis
  12. LeetCode 47. Permutations II
  13. cw2vec:蚂蚁金服公开最新基于笔画的中文词向量算法
  14. Sliverlight中xap文件详解
  15. 海康播放视频Demo
  16. 计算机换位加密,基于位平面变换的数字图像加密算法
  17. 中国近代史纲要 期末复习
  18. java http 401_401 API请求状态错误
  19. Unity 2D教程 | 骨骼动画:创建动画
  20. 利用python,求解数独

热门文章

  1. EMC Networker与mhvtl虚拟磁带库的结合on rhel5.5
  2. 理解域信任关系,Active Directory系列之十六
  3. origin9语言设置中文_英雄联盟手游怎么设置繁体 LOL手游繁中设置方法?_英雄联盟手游...
  4. 在html前面追加,在追加到DOM之前操纵html
  5. springboot源码 红色J_通达信副图指标源码之,出手就赢
  6. 用于面包板的双列直插需要多宽?
  7. 2021 CSDN年度回忆录
  8. 使用ESP32 MicroPython I2C功能读取 BH1750光度传感器模块数据
  9. 无线节能组的充电问题
  10. 如何配置Keil 外部编辑器?