一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

string命令合集

CHANBAEK ? 來(lái)源:數(shù)字IC與好好生活的兩居室 ? 作者:除夕之夜啊 ? 2023-03-29 11:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

string 命令合集

(1) 常用的 string 命令如下表所示,其中粗體部分表示 TCL 系統(tǒng)命令或參數(shù)。

(2) “str1 str2 ...”、“index1 index2 ...”等,表明參數(shù)可以指定多個(gè)。

(3) 注意各個(gè)命令使用字符串變量時(shí),格式是 **str 還是 str。一般使用 **str 時(shí)會(huì)返回新的字符串,使用 str 時(shí)不會(huì)返回新的字符串。

命令格式 說(shuō)明
string comparestr1str2 字符串比較,str1 大于、等于、小于時(shí),返回值分別為 1、0、-1。
string equalstr1str2 字符串比較,嚴(yán)格相同返回 1,否則返回 0??梢灾付?-nocase 選項(xiàng),不區(qū)分大小寫(xiě)比較。也可以指定 -length 進(jìn)行定長(zhǎng)比較。
string index $str index 返回索引的字符
string range $str index1 index2 返回指定索引范圍為 index1~index2 內(nèi)的字符串
string replace $str index1 index2 newStr 將索引范圍為 index1~index2 的字符串替換為 newStr,如果沒(méi)有指定新字符串則完成刪除功能
string mapcharMapstr 根據(jù)字典型變量 charMap 鍵值對(duì)的關(guān)系,將 str 中的字符作為鍵進(jìn)行映射
string length $str 返回字符串的字符長(zhǎng)度
string repeat $str times 字符串重復(fù)多次組成新的字符串變量
string reverse $str 返回與字符串 str 順序相反的字符串
string tolower $str 返回小寫(xiě)字符
string toupper $str 返回大寫(xiě)字符
string firststr1str2 返回 str1 在 str2 中第一次出現(xiàn)的位置索引
string laststr1str2 返回 str1 在 str2 中最后一次出現(xiàn)的位置索引
string trim $str chars 刪除字符串兩端的 chars,默認(rèn)刪除空白
string trimleft $str chars 刪除字符串左側(cè)開(kāi)始的 chars,默認(rèn)刪除空白
string trimright $str chars 刪除字符串右側(cè)開(kāi)始的 chars,默認(rèn)是空白
string wordend $str index 返回在索引位置的單詞之后的字符索引位置
string wordstart $str index 返回在索引位置的單詞中第一個(gè)字符的索引位置
string is class $str 判斷字符串的類(lèi)型
string match pattern str 字符串匹配模式,匹配成功則返回 1

字符串操作舉例

舉例:string compare/equal

TCL 中使用 string equal 進(jìn)行字符串是否相等的比較。嚴(yán)格相等返回值為 1,否則為 0 。

可選項(xiàng) -nocase 指定比較時(shí)不區(qū)分大小寫(xiě),可選項(xiàng) -length 指定字符串長(zhǎng)度進(jìn)行比較。

set str_ref "abcd"
set str_comp1 "abce"
set str_comp2 "ABCd"
# 以下兩種方式不等
puts [string equal $str_ref $str_comp1]
puts [string equal $str_ref $str_comp2]
#以下兩種方式相等
puts [string equal -length 3 $str_ref $str_comp1]
puts [string equal -nocase $str_ref $str_comp2]
#% 0
#% 0
#% 1
#% 1

string compare 不僅能比較是否相等,還能比較 2 個(gè)字符串大小(按照 ASCII 字符排列)。當(dāng)兩個(gè)字符串間的關(guān)系為大于、等于、小于時(shí),返回值分別為 1、0、-1。

也可以使用 -nocase、-length 選項(xiàng)。

set str_ref "abcd"
set str_comp1 "abce"
set str_comp2 "ABCd"
# abcd < abce
puts [string compare $str_ref $str_comp1]
# abcd > ABCd
puts [string compare $str_ref $str_comp2]
# 以下相等
puts [string compare -length 3 $str_ref $str_comp1]
puts [string compare -nocase $str_ref $str_comp2]


#% -1
#% 1
#% 0
#% 0

舉例:string index/range

string index 用于訪問(wèn)字符串中的單個(gè)字符,string range 用于訪問(wèn)字符串中指定范圍內(nèi)的多個(gè)字符。

set str "Forever young."
puts "3rd char: [string index $str 3]"
puts "3-6 char: [string range $str 3 6]"
#% 3rd char: e
#% 3-6 char: ever

舉例:string replace/map

string replace 可以將指定索引范圍內(nèi)的字符串替換為新的字符串。

如果沒(méi)有指定新字符串則完成刪除功能。

set str "Forever young."
# 替換 young -> happy , young -> sad
puts "[string replace $str 8 end-1 "happy"]"
puts "[string replace $str 8 end-1 "sad"]"
# 刪除 young
puts "[string replace $str 8 end-1]"
#% Forever happy.
#% Forever sad.
#% Forever .

string map 根據(jù)指定字典型變量中鍵值對(duì)的關(guān)系,將相應(yīng)的字符串進(jìn)行映射替換。原字符串中的字符相當(dāng)于字典中的鍵,新字符串替換后的值為字典中鍵對(duì)應(yīng)的值。

替換時(shí)按照字典型變量中鍵出現(xiàn)的順序進(jìn)行映射替換,剩余字符串中沒(méi)有與鍵匹配的字符,則保留原字符(串)。

set str "Forever young. Bless you."
set char_map [dict create Forever 22 \\
                          " " 33 \\
                          "young" 44 ]
puts "[string map $char_map $str]"
#%  223344.33Bless33you.

舉例:string length/repeat/reverse

string length/repeat/reverse 具有計(jì)算長(zhǎng)度、重復(fù)字符串、反轉(zhuǎn)字符串的功能。

set str "Hello, Zhihua"
puts [string repeat $str 2]
puts [string length $str]
puts [string reverse $str]
#% Hello, ZhihuaHello, Zhihua
#% 13
#% auhihZ ,olleH

舉例:string tolower/toupper

string tolower/toupper 分別返回字符串的小寫(xiě)、大寫(xiě)格式。

puts [string tolower AbcD]
puts [string toupper AbcD]


#% abcd
#% ABCD

舉例:string first/last

string first **str1 **str2 startindex

string first 用于查找第一個(gè)字符串在第二個(gè)字符串中的位置,并返回第一個(gè)匹配的索引值。命令結(jié)尾還可以指定開(kāi)始查找的索引,即查找范圍為 str2 索引之后的字符串。

string last **str1 **str2 endindex

string last 用于查找第一個(gè)字符串在第二個(gè)字符串中的位置,并返回最后一個(gè)匹配的索引值。命令結(jié)尾還可以指定結(jié)束查找的索引,即查找范圍為 str2 索引之前的字符串。

#index     2    7    12  
set str "Abab 3cab acabb"
puts [string first ab $str]
puts [string first ab $str 5]
puts [string last ab $str]
puts [string last ab $str 10]


#% 2
#% 7
#% 12
#% 7

舉例:string trim/trimleft/trimright

string trim/trimleft/trimright $str chars

根據(jù)指定的多個(gè)字符 chars,string trim/trimleft/trimright 依次刪除字符串 $str 兩端、左側(cè)、右側(cè)的字符。只要字符串兩端、左側(cè)、右側(cè)的字符存在于指定的 chars 中,則會(huì)依次被刪除,直至遇到不存在與 chars 中的字符。

如果沒(méi)有指定 chars 選項(xiàng),則默認(rèn)刪除空格、制表符、換行符。

set str " abccICbcc "
# 默認(rèn)刪除兩邊空格
puts [string trim $str]
# 指定 chars 時(shí)不要忘記輸入空格
puts [string trim $str "abc "]
# 默認(rèn)刪除左邊空格
puts [string trimleft $str]
# 指定 chars 時(shí)沒(méi)有輸入空格,則字符串不會(huì)改變
puts [string trimleft $str "abc"]
# 默認(rèn)刪除右邊空格
puts [string trimright $str]
puts [string trimright $str "bca "]
#% abccICbcc
#% IC
#% abccICbcc 
#%  abccICbcc 
#%  abccICbcc
#%  abccIC

舉例:string wordend/wordstart

string wordend 返回字符串中包含索引字符的單詞的下一個(gè)單詞的首個(gè)字符的索引。

string wordstart 返回字符串中包含索引字符的單詞的首個(gè)字符的索引。

此命令下,任何連續(xù)的字符數(shù)字或者下劃線,或者除此之外的單個(gè)字符,例如空格,都被視為一個(gè)單詞。

下列示例中,變量有 3 個(gè)單詞:For_ever、空格、Young。

# index  0123456789
set str "For_ever Young"
puts [string wordend $str 2]
puts [string wordend $str 8]
puts [string wordend $str 10]
puts [string wordstart $str 2]
puts [string wordstart $str 8]
puts [string wordstart $str 10]


#% 8
#% 9
#% 14
#% 0
#% 8
#% 9

舉例:string is

string is class -strict -failIndex var $str

string is 命令用于判斷字符串的類(lèi)型,如果字符串符合 TCL 中指定字符類(lèi)型 ,則返回值為1 ,否則為 0。

當(dāng)指定 -strict 選項(xiàng)時(shí),對(duì)于所有 class 字符類(lèi)型,當(dāng)字符串為空時(shí)返回值為 1。如果不指定,遇到空字符串時(shí)返回值為 1 。

當(dāng)指定了 -failIndex var 選項(xiàng)時(shí),該命令會(huì)把第一個(gè)不符合 class 類(lèi)別字符的索引保存到變量 var 中。如果返回值為1,則不進(jìn)行賦值操作。但是當(dāng) class 為 boolean、ture 或 false 類(lèi)型時(shí),如果返回值為 0 ,var 會(huì)被設(shè)置為0。

這里簡(jiǎn)單介紹下 Unicore 碼:統(tǒng)一碼,又稱單一碼(Unicode),它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求。而大多數(shù)計(jì)算機(jī)采用 ASCII 碼是表示所有大小寫(xiě)字母、數(shù)字、標(biāo)點(diǎn)符號(hào)和控制字符的 7 位編碼方案。統(tǒng)一碼包含 128 個(gè) ASCII 碼字符。

TCL 字符串系統(tǒng)類(lèi)型 class 取值如下。

alpha Unicore 字母 double 雙精度浮點(diǎn)型,可以包含空格
alnum Unicore 字母或數(shù)字 list 有效的列表結(jié)構(gòu)
ascii ASCII 字符 boolean 布爾型值
lower Unicore 小寫(xiě)字母 true 布爾型值:真
upper Unicore 大寫(xiě)字母 false 布爾型值:假
wordchar 字母數(shù)字或連接符 control Unicore 控制字符
digit Unicore 數(shù)字 graph 除空格外的 Unicore 打印字符
xdigit 十六進(jìn)制字符 print 包含空格的 Unicore 打印字符
integer 32 位整數(shù)型 punct Unicore 的標(biāo)點(diǎn)符號(hào)
wideinteger 64 位長(zhǎng)整數(shù)型 space Unicore 的空白字符

現(xiàn)在對(duì)各種 class 類(lèi)型進(jìn)行舉例說(shuō)明,返回值均為 1 。

string is alpha "?éα?以及漢字"
string is alnum "1234?éα?以及漢字"
string is ascii "Forever"
string is lower "forever"
string is upper "FOREVER"
string is wordchar "Stu_No3"
string is digit 1234
string is xdigit "\\x33"
string is integer 1234
string is wideinteger 1234


string is double 1e-3
string is list {Forever Young .}
string is boolean yes
string is true 1
string is false false
string is control \\n
string is graph "£±2"
string is print " £±2 "
string is punct "。\\/"
string is space "    "

下面為返回值均為 0 的幾個(gè)簡(jiǎn)單示例。

string is alpha "1234?éα?以及漢字"
string is ascii "。"
string is lower "Forever"
string is digit 123.45
string is punct " 。\\/ "
string is space "a b c"

下面是 -strict 選項(xiàng)的簡(jiǎn)單示例。

string is alpha ""
string is integer ""
string is alpha -strict ""
string is integer -strict ""


#% 1
#% 1
#% 0
#% 0

下面是 -failindex 選項(xiàng)的簡(jiǎn)單示例。

set str "MaryIs32."
string is alpha -failindex index $str
puts "Failed index: $index"
puts "Failed char: [string index $str $index]"


Failed index: 6
Failed char: 3

字符串匹配(string match)將在下一節(jié)說(shuō)明。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCL
    TCL
    +關(guān)注

    關(guān)注

    11

    文章

    1782

    瀏覽量

    89896
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    590

    瀏覽量

    22206
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    737

    瀏覽量

    22867
  • string
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    4906
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STRING VHDL程序

    STRING VHDL程序,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-11 11:55 ?0次下載

    探究面試最常見(jiàn)的String、StringBuffer、StringBuilder問(wèn)題

    一。你了解String類(lèi)嗎? 二。深入理解String、StringBuffer、StringBuilder 三。不同場(chǎng)景下三個(gè)類(lèi)的性能測(cè)試 四。常見(jiàn)的關(guān)于String、StringBuffer
    發(fā)表于 09-27 10:23 ?0次下載
    探究面試最常見(jiàn)的<b class='flag-5'>String</b>、StringBuffer、StringBuilder問(wèn)題

    Tcl學(xué)習(xí):string compare命令對(duì)字符串的比較

    string equal則是對(duì)兩個(gè)字符串進(jìn)行簡(jiǎn)單的比較,如兩者嚴(yán)格相同,則返回1,否則返回0(與stringcompare的返回值是不同的)。
    的頭像 發(fā)表于 09-23 10:10 ?9229次閱讀

    MATLAB的常用命令合集詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是MATLAB的常用命令合集詳細(xì)資料免費(fèi)下載,匯集MATLAB命令,快速查詢MATLAB命令含義,適合初學(xué)者。
    發(fā)表于 11-09 08:00 ?16次下載
    MATLAB的常用<b class='flag-5'>命令</b><b class='flag-5'>合集</b>詳細(xì)資料免費(fèi)下載

    linux的History命令代碼的詳細(xì)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是linux的History命令代碼的詳細(xì)資料合集免費(fèi)下載。
    發(fā)表于 11-19 08:00 ?2次下載

    Vim的命令合集

    命令歷史以:和/開(kāi)頭的命令都有歷史紀(jì)錄,可以首先鍵入:或/然后按上下箭頭來(lái)選擇某個(gè)歷史命令。
    的頭像 發(fā)表于 02-03 17:26 ?2796次閱讀

    176條DevOps人員常用的linux命令速查表資料合集

    本文檔詳細(xì)介紹的是176條DevOps人員常用的linux命令速查表資料合集
    的頭像 發(fā)表于 03-30 10:17 ?4210次閱讀

    紅帽linux命令合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是紅帽linux命令合集免費(fèi)下載。
    發(fā)表于 06-26 16:27 ?4次下載

    Linux的命令大全合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux的命令大全合集免費(fèi)下載。
    發(fā)表于 08-13 08:00 ?5次下載
    Linux的<b class='flag-5'>命令</b>大全<b class='flag-5'>合集</b>免費(fèi)下載

    MATLAB仿真命令集的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是MATLAB仿真命令集的資料合集免費(fèi)下載。
    發(fā)表于 09-11 17:04 ?15次下載
    MATLAB仿真<b class='flag-5'>命令</b>集的資料<b class='flag-5'>合集</b>免費(fèi)下載

    CAD的快捷鍵命令合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是CAD的快捷鍵命令合集免費(fèi)下載。
    發(fā)表于 12-16 08:00 ?4次下載
    CAD的快捷鍵<b class='flag-5'>命令</b><b class='flag-5'>合集</b>免費(fèi)下載

    如何使用C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)容的string

    眾所周知,C++ 中的string使用比較方便,關(guān)于C++ 中的string源碼實(shí)現(xiàn)可以看我的這篇文章:源碼分析C++的string的實(shí)現(xiàn)
    的頭像 發(fā)表于 10-25 10:59 ?2317次閱讀

    u-boot常用的命令合集

    u-boot常用的命令合集
    發(fā)表于 02-11 09:50 ?2次下載

    UTF8String是如何編碼的?

    UniversalString和UTF8String 都支持完全相同的字符集,前64K 字符都是BMPString 中的字符集。請(qǐng)注意,BMPString 的前128 個(gè)字符與IA5String
    的頭像 發(fā)表于 08-26 09:55 ?2502次閱讀
    UTF8<b class='flag-5'>String</b>是如何編碼的?

    bigdecimal轉(zhuǎn)string類(lèi)型

    將BigDecimal轉(zhuǎn)換為String類(lèi)型是在Java編程中常常遇到的一個(gè)問(wèn)題。BigDecimal是Java中用于表示高精度十進(jìn)制數(shù)的類(lèi),而String則是用于表示文本字符串的數(shù)據(jù)類(lèi)型。在某些
    的頭像 發(fā)表于 11-30 11:09 ?6956次閱讀