<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Tcl 中的字符串 > 原文: [https://zetcode.com/lang/tcl/strings/](https://zetcode.com/lang/tcl/strings/) 在 Tcl 教程的這一部分中,我們將更詳細地處理字符串數據。 字符串是計算機語言中的一種重要數據類型。 字符串是字符序列。 與其他語言不同,Tcl 中的字符串不必總是用雙引號引起來。 僅當單詞之間有空格時,它們才是必需的。 Tcl 是基于字符串的語言。 它提供了一組豐富的用于處理字符串的命令。 ## 第一個例子 下面是一個顯示一些字符串的簡單示例。 ```tcl #!/usr/bin/tclsh puts Tcl puts Java puts Falcon puts "Tcl language" puts {Tcl language} ``` 該腳本將一些字符串值打印到控制臺。 ```tcl puts Tcl puts Java puts Falcon ``` Tcl 中的字符串不必總是用引號引起來。 ```tcl puts "Tcl language" puts {Tcl language} ``` Tcl 中的字符串可以用雙引號或大括號括起來。 ```tcl $ ./simple_strings.tcl Tcl Java Falcon Tcl language Tcl language ``` 這是`simple.tcl`腳本的輸出。 ## 使用引號 如果我們想在直接演講中顯示報價該怎么辦? 在這種情況下,必須對內引號進行轉義。 ```tcl $ cat directspeech.tcl #!/usr/bin/tclsh puts "There are many stars" puts "He said, \"Which one is your favourite?\"" ``` 我們使用`\`字符轉義其他引號。 ```tcl $ ./directspeech.tcl There are many stars He said, "Which one is your favourite?" ``` `directspeech.tcl`程序的輸出。 ## 多行字符串 在 Tcl 中創建多行字符串非常容易。 在創建多行字符串的許多其他語言中,我使用起來不那么方便。 ```tcl #!/usr/bin/tclsh set lyrics "I cheated myself like I knew I would I told ya, I was trouble you know that I'm no good" puts $lyrics ``` 我們簡單地繼續下一行。 如果我們想顯示經文,這很有用。 ```tcl $ ./multiline.tcl I cheated myself like I knew I would I told ya, I was trouble you know that I'm no good ``` ## 比較字符串 字符串的基本比較可以通過`string compare`命令完成。 ```tcl #!/usr/bin/tclsh puts [string compare 12 12] puts [string compare Eagle Eagle] puts [string compare Eagle eagle] puts [string compare -nocase Eagle eagle] ``` `string compare`命令逐字符比較字符串。 如果發現兩個字符串的第一個字符相等,則繼續第二個字符,直到結尾。 如果字符串相等,則返回 0;如果第一個字符串中的不匹配字符位于 ASCII 表中的第二個字符串之前,則返回 -1。 如果第一個字符串的不匹配字符位于第二個字符串的字符之后,則返回 1。 ```tcl puts [string compare 12 12] ``` 在這種情況下,12 是字符串。 ```tcl puts [string compare Eagle Eagle] ``` 兩個字符串相等,將 0 打印到控制臺。 ```tcl puts [string compare Eagle eagle] ``` `E`位于`e`之前,因此返回-1。 ```tcl puts [string compare -nocase Eagle eagle] ``` 使用`-nocase`選項,我們將忽略大小寫。 這兩個字符串相等。 ```tcl $ ./compare.tcl 0 0 -1 0 ``` 程序的輸出。 `string equal`也可以用來比較字符串。 如果字符串相等,則命令返回 1,否則返回 0。 ```tcl #!/usr/bin/tclsh set str1 Tcl set str2 "Tcl language" puts [string compare $str1 $str2] puts [string compare -length 3 $str1 $str2] puts [string equal $str1 $str2] puts [string equal -length 3 $str1 $str2] ``` 該腳本顯示了兩個比較字符串的命令。 ```tcl puts [string compare $str1 $str2] ``` 該行打印 -1。 前三個位置的字符相等。 在第四個位置,`string compare`命令將空格與`l`字符進行比較。 該空格位于 ASCII 表中的`l`字符之前。 字符串不相等。 ```tcl puts [string compare -length 3 $str1 $str2] ``` 在這種情況下,我們將比較限制為前三個字符。 它們在兩個字符串中都相同,因此命令返回 0。 ```tcl puts [string equal $str1 $str2] ``` 這兩個字符串不相同,因此`string equal`命令返回 0,表示為`false`。 ```tcl puts [string equal -length 3 $str1 $str2] ``` 將字符串限制為前三個字符,該命令返回 1。這意味著直到前三個字符為止它們都是相同的。 ## 模式匹配 對于簡單的模式匹配-球形-我們可以使用`string match`命令。 對于更強大的模式匹配,我們可以利用`regexp`命令。 ```tcl #!/usr/bin/tclsh puts [string match book???? bookcase] puts [regexp {[a-z]{3}} "abc"] puts [regexp {[^a-z]{3}} "abc"] puts [regexp book(shelf|worm) bookworm] ``` 該示例演示了`string match`和`regexp`命令的用法。 對于匹配項,它們返回 1,對于不匹配項,返回 0。 ```tcl $ ./string_match.tcl 1 1 0 1 ``` `string_match1.tcl`程序的輸出。 ## Unicode 我們可以在 Tcl 腳本中使用 Unicode 字符串。 ```tcl #!/usr/bin/tclsh puts "La femme vit par le sentiment, là où l'homme vit par l'action" puts "Анна Каренина" ``` 我們將兩個消息打印到終端。 第一是法語,第二是俄語。 ```tcl $ ./unicode.tcl La femme vit par le sentiment, là où l'homme vit par l'action Анна Каренина ``` 輸出。 ## 字符串命令 Tcl 具有有用的內置命令,可用于處理字符串。 ```tcl #!/usr/bin/tclsh set str Eagle puts [string length $str] puts [string index $str 0] puts [string index $str end] puts [string range $str 1 3] ``` 我們定義一個字符串變量并使用一些字符串命令。 ```tcl puts [string length $str] ``` `string length`返回字符串中的字符數。 ```tcl puts [string index $str 0] puts [string index $str end] ``` `string index`命令在特定位置返回字符。 ```tcl puts [string range $str 1 3] ``` `string range`返回由第一個和最后一個索引選擇的字符范圍。 ```tcl $ ./strings1.tcl 5 E e agl ``` 輸出。 我們有一個`split`命令將字符串拆分為特定字符。 該命令返回單詞列表。 可以使用`join`命令將這些單詞組合成一個字符串。 ```tcl #!/usr/bin/tclsh set langs "Tcl,Java,C,C#,Ruby,Falcon" puts [split $langs ,] puts [join [split $langs ","] ":"] ``` 在我們的程序中,我們將拆分并連接字符串。 ```tcl set langs "Tcl,Java,C,C#,Ruby,Falcon" ``` 這是我們將要拆分的字符串。 有幾個單詞,以逗號分隔。 逗號字符是用來分割字符串的字符。 ```tcl puts [split $langs ,] ``` 該行顯示了我們從字符串中拆分出的所有單詞。 ```tcl puts [join [split $langs ","] ":"] ``` `split`命令返回字符串中的單詞列表。 然后將這些詞合并在一起。 單詞現在將由冒號分隔。 ```tcl $ ./splitjoin.tcl Tcl Java C C# Ruby Falcon Tcl:Java:C:C#:Ruby:Falcon ``` 示例的輸出。 接下來,我們將使用另一個帶有幾個字符串命令的示例。 ```tcl #!/usr/bin/tclsh set str "ZetCode" puts [string toupper $str] puts [string tolower $str] puts [string totitle $str] puts [string reverse $str] ``` 我們介紹了四個字符串命令。 這些命令不會更改原始字符串。 它們返回一個新的,經過修改的字符串。 ```tcl puts [string toupper $str] ``` 我們將字符轉換為大寫。 ```tcl puts [string tolower $str] ``` 我們將字符串的字母轉換為小寫。 ```tcl puts [string totitle $str] ``` `string totitle`返回一個字符串,其首字母大寫; 其他字符均為小寫。 ```tcl puts [string reverse $str] ``` 我們使用`string reverse`命令反轉字符串的字符。 ```tcl $ ./strings2.tcl ZETCODE zetcode Zetcode edoCteZ ``` 運行程序。 ## 格式化字符串 字符串的最基本格式在引號內完成。 ```tcl #!/usr/bin/tclsh set oranges 2 set apples 4 set bananas 3 puts "There are $oranges oranges, $apples apples and\ $bananas bananas. " ``` Tcl 用雙引號求值變量。 ```tcl puts "There are $oranges oranges, $apples apples and\ $bananas bananas. " ``` 在此代碼行中,我們將變量和字符串組合在一個句子中。 ```tcl $ ./fruit.tcl There are 2 oranges, 4 apples, and 3 bananas. ``` 輸出。 可以使用`format`命令完成更高級的格式化。 它具有以下概要: ```tcl format formatString ?arg arg ...? ``` `formatString`用于控制參數的顯示方式。 該命令可以使用多個參數。 ```tcl #!/usr/bin/tclsh puts [format %s "Inception movie"] puts [format "%d %s" 23 songs] ``` 這是基本腳本,顯示`format`命令的用法。 ```tcl puts [format %s "Inception movie"] ``` 該行僅將字符串輸出到控制臺。 ```tcl puts [format "%d %s" 23 songs] ``` 在這里,我們打印兩個參數。 每個參數都有一個格式說明符,該說明符以`%`字符開頭。 ```tcl $ ./basicformat.tcl Inception movie 23 songs ``` 輸出。 現在,我們顯示`format`命令的一些基本轉換說明符。 `%s`,`%f`,`%d`和`%e`是轉換類型。 它們控制如何顯示值。 轉換類型是轉換說明符的唯一必需部分。 ```tcl #!/usr/bin/tclsh puts [format "%s" "Tcl language"] puts [format "%f" 212.432] puts [format "%d" 20000] puts [format "%e" 212.342] ``` 我們將在終端上打印四則消息。 ```tcl puts [format "%s" "Tcl language"] ``` `%s`是字符串的轉換類型。 ```tcl puts [format "%f" 212.432] ``` `%f`用于顯示十進制數字。 ```tcl puts [format "%d" 20000] ``` 要打印整數值,我們使用`%d`轉換類型。 ```tcl puts [format "%e" 212.342] ``` `%e`用于以科學格式顯示數字。 ```tcl $ ./format.tcl Tcl language 212.432000 20000 2.123420e+02 ``` 輸出。 在下一個示例中,我們將以三種不同的數字格式設置數字格式。 ```tcl #!/usr/bin/tclsh puts [format "%-10s %-14s %s" Decimal Hexadecimal Octal] puts [format "%-10d %-14x %o" 5000 5000 5000] puts [format "%-10d %-14x %o" 344 344 344] puts [format "%-10d %-14x %o" 55 55 55] puts [format "%-10d %-14x %o" 9 9 9] puts [format "%-10d %-14x %o" 15666 15666 15666] ``` 我們以十進制,十六進制和八進制格式打印數字。 我們還將數字對齊三列。 ```tcl puts [format "%-10d %-14x %o" 5000 5000 5000] ``` `%-10d`適用于第一個數字,`%-14x`適用于第二個數字,`%o`適用于第三個數字。 我們將描述第一個。 格式說明符以`%`字符開頭。 負號`-`表示如果該值短于字段寬度,則將其對齊。 其余字段填充空白。 數字 10 指定字段寬度。 最后,`d`字符表明數字以十進制格式顯示。 `x`代表十六進制,`o`代表八進制。 ```tcl $ ./numbers.tcl Decimal Hexadecimal Octal 5000 1388 11610 344 158 530 55 37 67 9 9 11 15666 3d32 36462 ``` 運行示例。 最后,我們將格式化日期和時間數據。 我們使用`clock format`命令。 ```tcl #!/usr/bin/tclsh set secs [clock seconds] puts "Short date: [clock format $secs -format %D]" puts "Long date: [clock format $secs -format "%A, %B %d, %Y"]" puts "Short time: [clock format $secs -format %R]" puts "Long time: [clock format $secs -format %r]" puts "Month: [clock format $secs -format %B]" puts "Year: [clock format $secs -format %Y]" ``` 前面的示例演示了一些常見的日期和時間格式。 ```tcl set secs [clock seconds] ``` 我們以秒為單位獲取當前時間戳。 此值隨后傳遞給`clock format`命令,以使人類可以讀取日期和時間。 ```tcl puts "Short date: [clock format $secs -format %D]" ``` 日期格式由`-format`選項控制。 有幾種說明符。 `%D`以月/日/年格式返回日期。 ```tcl $ ./clockformat.tcl Short date: 04/11/2011 Long date: Monday, April 11, 2011 Short time: 11:30 Long time: 11:30:30 am Month: April Year: 2011 ``` 輸出。 Tcl 教程的這一部分介紹了字符串。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看