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

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

如何刪除不可打印的字符

如何刪除不可打印的字符

Go
慕森卡 2023-08-07 14:34:00
我正在嘗試從 Golang 中的字符串中刪除不可打印的字符。https://play.golang.org/p/Touihf5-hGHinvisibleChars := "Douglas"fmt.Println(invisibleChars)fmt.Println(len(invisibleChars))normal := "Douglas"fmt.Println(normal)fmt.Println(len(normal))輸出:Douglas10Douglas7第一個(gè)字符串末尾有一個(gè)不可見的字符。我嘗試替換非 ASCII 字符,但它也刪除了重音符號(hào)。如何僅刪除不可打印的字符?
查看完整描述

3 回答

?
慕姐8265434

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

前言:我在我的github.com/icza/gox庫中發(fā)布了這個(gè)實(shí)用程序,請(qǐng)參閱stringsx.Clean()。


您可以在報(bào)告錯(cuò)誤的地方刪除符unicode.IsGraphic()unicode.IsPrint()rune要從字符串中刪除某些s,您可以使用strings.Map().

例如:

invisibleChars := "Douglas"

fmt.Printf("%q\n", invisibleChars)

fmt.Println(len(invisibleChars))


clean := strings.Map(func(r rune) rune {

? ? if unicode.IsGraphic(r) {

? ? ? ? return r

? ? }

? ? return -1

}, invisibleChars)


fmt.Printf("%q\n", clean)

fmt.Println(len(clean))


clean = strings.Map(func(r rune) rune {

? ? if unicode.IsPrint(r) {

? ? ? ? return r

? ? }

? ? return -1

}, invisibleChars)


fmt.Printf("%q\n", clean)

fmt.Println(len(clean))

輸出(在Go Playground上嘗試):


"Douglas\u200b"

10

"Douglas"

7

"Douglas"

7


查看完整回答
反對(duì) 回復(fù) 2023-08-07
?
天涯盡頭無女友

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

invisibleChars = strings.TrimFunc(invisibleChars, func(r rune) bool {

        return !unicode.IsGraphic(r)

    })


查看完整回答
反對(duì) 回復(fù) 2023-08-07
?
交互式愛情

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

僅供參考,


我經(jīng)常使用strings.TrimFunc,但我發(fā)現(xiàn)strings.Map()檢測(cè)不可見字符比strings.TrimFunc.


strings.TrimFunc無法檢測(cè)輸入字符是否為"Douglas\u200b" + "bar"。如果后面跟有“bar”,則以下示例將失敗。結(jié)果變成了13而不是10。


func ExampleTrimFunc() {

    invisibleChars := "Douglas\u200b" + "bar"

    invisibleChars = strings.TrimFunc(invisibleChars, func(r rune) bool {

        return !unicode.IsGraphic(r)

    })


    fmt.Println(invisibleChars)

    fmt.Println(len(invisibleChars))


    normal := "Douglasbar"

    fmt.Println(normal)

    fmt.Println(len(normal))


    // Output:

    // Douglasbar

    // 10

    // Douglasbar

    // 10

}

但是,strings.Map()如下使用是成功的。


 func ExampleTrimFunc() {

    invisibleChars := "Douglas\u200b" + "bar"

-   invisibleChars = strings.TrimFunc(invisibleChars, func(r rune) bool {

-       return !unicode.IsGraphic(r)

-   })

+   invisibleChars = strings.Map(func(r rune) rune {

+       if unicode.IsGraphic(r) {

+           return r

+       }

+       return -1

+   }, invisibleChars)

 

    fmt.Println(invisibleChars)

    fmt.Println(len(invisibleChars))

 

    normal := "Douglasbar"

    fmt.Println(normal)

    fmt.Println(len(normal))

 

    // Output:

    // Douglasbar

    // 10

    // Douglasbar

    // 10

 }


查看完整回答
反對(duì) 回復(fù) 2023-08-07
  • 3 回答
  • 0 關(guān)注
  • 238 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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