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