如何在 Golang 中將位元組切片轉換為標題大小寫?


在 Golang 中,位元組切片是一系列位元組。可以使用內建函式 []byte() 建立位元組切片。有時,您可能希望將位元組切片轉換為標題大小寫,這意味著將每個單詞的第一個字母大寫。這可以使用 strings.Title() 函式輕鬆實現。在本文中,我們將學習如何在 Golang 中將位元組切片轉換為標題大小寫。

使用 strings.Title()

strings.Title() 函式將字串中每個單詞的第一個字母轉換為大寫。以下是如何使用它將位元組切片轉換為標題大小寫:

示例

package main

import (
   "fmt"
   "strings"
)

func main() {
   s := []byte("hello world")
   fmt.Println("Original:", string(s)) // Output: Original: hello world
   s = []byte(strings.Title(string(s)))
   fmt.Println("Title case:", string(s)) // Output: Title case: Hello World
}

輸出

Original: hello world
Title case: Hello World

在這個示例中,我們建立了一個值為“hello world”的位元組切片 s。然後,我們使用 string() 函式將切片轉換為字串,並將其傳遞給 strings.Title() 函式以將其轉換為標題大小寫。strings.Title() 函式返回一個新字串,其中每個單詞的第一個字母都已大寫。然後,我們使用 []byte() 函式將新字串轉換回位元組切片,並將其賦值回 s。最後,我們使用 fmt.Println() 函式列印切片的原始版本和標題大小寫版本。

使用 For 迴圈

如果您希望在不使用 strings.Title() 函式的情況下將位元組切片轉換為標題大小寫,則可以使用 for 迴圈和 unicode.ToTitle() 函式。以下是一個示例:

示例

package main
import (
   "fmt"
   "unicode"
)

func main() {
   s := []byte("hello world")
   fmt.Println("Original:", string(s)) // Output: Original: hello world
   inWord := true
   for i, b := range s {
      if unicode.IsSpace(rune(b)) {
         inWord = false
      } else if inWord {
         s[i] = byte(unicode.ToTitle(rune(b)))
      }
   }
   fmt.Println("Title case:", string(s)) // Output: Title case: Hello World
}

輸出

Original: hello world
Title case: HELLO world

在這個示例中,我們建立了一個值為“hello world”的位元組切片 s。然後,我們使用 for 迴圈迭代切片中的每個位元組。我們使用 inWord 變數跟蹤我們當前是否在一個單詞中。如果當前位元組是空格,我們將 inWord 設定為 false。如果當前位元組不是空格並且我們在一個單詞中,我們使用 unicode.ToTitle() 函式將其轉換為標題大小寫。最後,我們使用 fmt.Println() 函式列印切片的原始版本和標題大小寫版本。

結論

在本文中,我們學習瞭如何在 Golang 中使用 strings.Title() 函式和帶有 unicode.ToTitle() 函式的 for 迴圈將位元組切片轉換為標題大小寫。strings.Title() 函式是將位元組切片轉換為標題大小寫的推薦方法,因為它更簡潔且更高效。

更新於: 2023年4月20日

98 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.