Tcl基础学习(3):字符串string


字符串string是Tcl 的原始数据类型,字符串可以包含字母数字字符,数字,布尔值,甚至是二进制数据。

yes / true 1
no / false 0

字符串表示:字符串只有一个字时,不需要包含 “ ” ,当要表示多个字符时,使用 “ ” 和 { } 包括。

字符串转义,在“ \ ”后加字母有特殊作用。

\a --警报和铃     \b -- 退格     \f -- 换页     \n -- 换行     \r -- 回车     \t -- 水平制表     \v -- 垂直制表

\\ -- 字符\     \' -- 字符'     \"-- 字符"     \? -- 字符?


字符串比较和匹配命令

string compare string1 string2——相比string1string2的返回值:

  • -1 ..... 如果string1小于string2
  • 0 ........ 如果string1等于string2
  • 1 ........ 如果string1大于string2

string first string1string2——返回string1开始第一个匹配 的字符的索引,string2如果没有匹配,则返回 -1

string last string1 string2 ——返回string1开始最后一个匹配的字符的索引,string2如果没有匹配,则返回 -1

string wordend string index ——返回包含index'th 个字符的单词中最后一个字符之后的字符索引string。单词是任何连续的字母、数字或下划线字符或单个其他字符的集合。

string wordstart string index ——返回单词中包含 的第index' 个字符 的第一个字符的索引string

string match pattern string  ——如果 string 与pattern匹配, 则返回 1 

#compare比较大小 
set s1 "Hello"
set s2 "World"
set s3 "World"
puts [string compare s1 s2]
puts [string compare s2 s3]
>>	-1
	0
#first—索引s2在s1中第一次出现的位置
#last—索引s2在s1中最后一次出现的位置
set s1 "Hello World"
set s2 "o"
puts [string first $s2 $s1]
puts [string last $s2 $s1]
>>	4
	7
#Match匹配字符串
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

字符串的子命令

string length string——返回 string的长度

set s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]

>> 	Length of string s1
	11

string index string index——返回 stringindexth 个字符

set s1 "Hello World"
puts [string index $s1 1]

>> 	e

string range string first last——返回由从firstlast 的字符组成的字符串

set string "this is my test string"
puts "\"[string range $string 5 10]\" are characters between the 5'th and 10'th"

>>	"is my " are characters between the 5'th and 10'th

string tolower string——返回string所有字母从大写转换为小写

set string "THIS IS STRING"
puts "[string tolower $string]"

>>	this is string

string toupper string——返回string所有字母从小写转换为大写

set string "this is string"
puts "[string toupper $string]"

>>	THIS IS STRING

string trim string ?trimChars?——返回从两端移除string所有出现的trimChars。默认情况下trimChars是空格(空格、制表符、换行符)。

注:字符不被视为字符“块” - 换句话说, string trim "davidw" dw将返回字符串 avi而不是davi

set s1 " Hello World "
set s2 " "
puts "Trim characters s1 on both sides of s2"
puts [string trim $s1 $s2]

>>	Trim characters s1 on both sides of s2
	Hello World

string trimleft string ?trimChars?——从左侧移除string所有出现的 返回trimChars。默认情况下trimChars是空格(空格、制表符、换行符)

set s1 "Hello World"
set s2 "World"
puts "Trim right $s2 in $s1"
puts [string trimright $s1 $s2]

>>	Trim right World in Hello World
	Hello 

string trimright string ?trimChars?——返回从右侧删除string所有出现的trimChars。默认情况下trimChars是空格(空格、制表符、换行符)

set s1 "Hello World"
set s2 "Hello"
puts "Trim left $s2 in $s1"
puts [string trimleft $s1 $s2]

>>	Trim left Hello in Hello World
	 World

format formatString ?arg1 arg2 ... argN?——返回以与 ANSIsprintf过程相同的方式格式化的字符串 。

      FormatString是对要使用的格式的描述。该协议的完整定义在format手册页中。该定义的一个有用子集是formatString由字面量词、反斜杠序列和% fields

下面 列出 %fields 指示符的展现形式和作用

  • %s... 数据是一个字符串
  • %d... 数据是十进制整数
  • %x... 数据是一个十六进制整数
  • %o... 数据是一个八进制整数
  • %f... 数据是一个浮点数
  • %-... 左对齐该字段中的数据
  • %+... 右对齐该字段中的数据
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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM