學習軌道
/
Go
Go
/
練習
/
歡迎來到科技宮殿!
歡迎來到科技宮殿!

歡迎來到科技宮殿!

學習練習

簡介

Go 中的string是不可變的位元組序列,這些位元組不一定要代表字元。

字串常值定義在雙引號之間:

const name = "Jane"

字串可以用+運算子串接起來:

"Jane" + " " + "Austen"
// => "Jane Austen"

有些特殊字元需要用前置的反斜線跳脫,例如字串中的\t代表定位字元,\n代表換行。

"How is the weather today?\nIt's sunny"  
// =>
// How is the weather today?
// It's sunny

strings套件裡有許多處理字串的實用函式。 想進一步了解字串相關的函式,可以參考 strings 套件文件。 以下是一些例子:

import "strings"

// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"

// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"

說明

附近有一間叫做「Tech Palace」的電器行。店主最近安裝了一塊大型顯示器,用來播放行銷訊息,並在顧客於入口掃描會員卡時顯示特別的問候語。這塊顯示器由許多小型 LED 燈組成,可以顯示多行文字。

店主需要你協助撰寫用來產生這塊新顯示器文字內容的程式碼。

1. 建立歡迎訊息

對於大多數掃描會員卡的顧客,店主希望顯示器上顯示"Welcome to the Tech Palace,",後面接著以大寫字母呈現的顧客姓名。

請實作函式WelcomeMessage,它接受顧客的姓名作為string引數,並以string回傳想要的訊息。

WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY

2. 加上花俏的邊框

對於在店裡消費很多的忠實顧客,店主希望透過在歡迎訊息前後各加上一行星星,讓歡迎畫面更花俏。他們還不確定每行應該要有幾顆星星,所以希望這個數量可以自行設定。

請撰寫函式AddBorder,它接受歡迎訊息(string)和每行的星星數量(型別int)作為引數。它應該回傳一個由 3 行組成的string:一行包含指定數量的星星,接著是原本傳入的歡迎訊息,最後再一行星星。

AddBorder("Welcome!", 10)

應該回傳以下內容:

**********
Welcome!
**********

3. 清理舊的行銷訊息

在安裝這塊新顯示器之前,店裡有一塊類似的顯示器,只能顯示無法設定、固定不變的文字行。店主希望在新顯示器上重複使用一些舊的行銷訊息。不過,這些資料已經包含了星星邊框,還有一些多餘的空白字元。你的任務就是把這些訊息清理乾淨,讓它們可以再次使用。

請實作函式CleanUpMessage,它接受舊的行銷訊息作為字串。這個函式應該先移除文字中所有的星星,接著再移除剩餘文字開頭與結尾的空白字元,然後回傳清理後的訊息。

message := `
**************************
*    BUY NOW, SAVE 10%   *
**************************
`

CleanUpMessage(message)
// => BUY NOW, SAVE 10%
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Go Exercism

準備好開始 歡迎來到科技宮殿! 了嗎?

註冊 Exercism,透過 34 個概念165 個練習 和真人引導來學習並精通 Go,全部免費。