第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將跟隨者字符連接到字符串,直到在 Golang 中達(dá)到定義的最大長(zhǎng)度?

如何將跟隨者字符連接到字符串,直到在 Golang 中達(dá)到定義的最大長(zhǎng)度?

Go
達(dá)令說 2021-12-07 16:07:23
InputOutputabc    abc___a        a___    abcdeabcde_試圖package mainimport "fmt"import "unicode/utf8"func main() {    input := "abc"    if utf8.RuneCountInString(input) == 1 {        fmt.Println(input + "_____")    } else if utf8.RuneCountInString(input) == 2 {        fmt.Println(input + "____")    } else if utf8.RuneCountInString(input) == 3 {        fmt.Println(input + "___")    } else if utf8.RuneCountInString(input) == 4 {        fmt.Println(input + "__")    } else if utf8.RuneCountInString(input) == 5 {        fmt.Println(input + "_")    } else {        fmt.Println(input)    }}回報(bào)abc___討論盡管代碼正在創(chuàng)建預(yù)期的輸出,但它看起來非常冗長(zhǎng)和狡猾。題有沒有簡(jiǎn)潔的方法?
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

字符串封裝具有Repeat的功能,所以像

input += strings.Repeat("_", desiredLen - utf8.RuneCountInString(input))

會(huì)更簡(jiǎn)單。您應(yīng)該首先檢查它desiredLen是否小于輸入長(zhǎng)度。


查看完整回答
反對(duì) 回復(fù) 2021-12-07
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

您還可以通過切片準(zhǔn)備好的“最大填充”(切出所需的填充并將其添加到輸入中)來有效地執(zhí)行此操作,而無需循環(huán)和“外部”函數(shù)調(diào)用:


const max = "______"


func pad(s string) string {

    if i := utf8.RuneCountInString(s); i < len(max) {

        s += max[i:]

    }

    return s

}

使用它:


fmt.Println(pad("abc"))

fmt.Println(pad("a"))

fmt.Println(pad("abcde"))

輸出(在Go Playground上試試):


abc___

a_____

abcde_

筆記:


len(max)是常數(shù)(因?yàn)閙ax是常數(shù)):規(guī)格:長(zhǎng)度和容量:


表達(dá)len(s)是常數(shù),如果s是字符串常量。


切片 astring是有效的:


這種類似切片的字符串設(shè)計(jì)的一個(gè)重要結(jié)果是創(chuàng)建子字符串非常有效。所需要做的就是創(chuàng)建一個(gè)兩個(gè)字的字符串標(biāo)題。由于字符串是只讀的,原始字符串和切片操作產(chǎn)生的字符串可以安全地共享同一個(gè)數(shù)組。


查看完整回答
反對(duì) 回復(fù) 2021-12-07
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

你可以input += "_"在一個(gè)循環(huán)中完成,但這會(huì)分配不必要的字符串。這是一個(gè)不會(huì)分配超過其需要的版本:


const limit = 6


func f(s string) string {

    if len(s) >= limit {

        return s

    }

    b := make([]byte, limit)

    copy(b, s)

    for i := len(s); i < limit; i++ {

        b[i] = '_'

    }

    return string(b)

}

游樂場(chǎng):http : //play.golang.org/p/B_Wx1449QM。


查看完整回答
反對(duì) 回復(fù) 2021-12-07
  • 3 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)