欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go語言按顯示長度截取字符串的方法

 更新時(shí)間:2015年02月24日 12:12:44   作者:不吃皮蛋  
這篇文章主要介紹了go語言按顯示長度截取字符串的方法,涉及Go語言操作字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了go語言按顯示長度截取字符串的方法。分享給大家供大家參考。具體分析如下:

根據(jù)顯示長度截取字符串,之前php用的utf8編碼,10個(gè)英文和10個(gè)漢字的顯示長度差距太大,按字節(jié)截取的話又會出錯(cuò)出現(xiàn)截取半個(gè)漢字的情況,所以寫了這兩個(gè)函數(shù).

這兩天在折騰golang,所以就用golang重寫了著連個(gè)函數(shù).代碼如下:

復(fù)制代碼 代碼如下:
package main
import (
    "fmt"
)
func main() {
    fmt.Println(show_strlen("哈哈1"))
    fmt.Println(show_substr("哈哈1什1么的", 9))
}

根絕顯示長度截取字符串

復(fù)制代碼 代碼如下:
func show_substr(s string, l int) string {
    if len(s) <= l {
        return s
    }
    ss, sl, rl, rs := "", 0, 0, []rune(s)
    for _, r := range rs {
        rint := int(r)
        if rint < 128 {
            rl = 1
        } else {
            rl = 2
        }
        if sl + rl > l {
            break
        }
        sl += rl
        ss += string(r)
    }
    return ss
}

根據(jù)字符串顯示獲取顯示長度

復(fù)制代碼 代碼如下:
func show_strlen(s string) int {
    sl := 0
    rs := []rune(s)
    for _, r := range rs {
        rint := int(r)
        if rint < 128 {
            sl++
        } else {
            sl += 2
        }
    }
    return sl
}

希望本文所述對大家的Go語言程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 通過源碼分析Golang?cron的實(shí)現(xiàn)原理

    通過源碼分析Golang?cron的實(shí)現(xiàn)原理

    golang實(shí)現(xiàn)定時(shí)任務(wù)很簡單,只須要簡單幾步代碼即可以完成,最近在做了幾個(gè)定時(shí)任務(wù),想研究一下它內(nèi)部是怎么實(shí)現(xiàn)的,所以將源碼過了一遍,記錄和分享在此。需要的朋友可以參考以下內(nèi)容,希望對大家有幫助
    2022-10-10
  • Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹

    Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹

    這篇文章主要為大家介紹了Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • go語言實(shí)現(xiàn)AES加密的方法

    go語言實(shí)現(xiàn)AES加密的方法

    這篇文章主要介紹了go語言實(shí)現(xiàn)AES加密的方法,實(shí)例分析了Go語言的加密技巧,需要的朋友可以參考下
    2015-03-03
  • 一篇文章帶你輕松搞懂Golang的error處理

    一篇文章帶你輕松搞懂Golang的error處理

    在進(jìn)行后臺開發(fā)的時(shí)候,錯(cuò)誤處理是每個(gè)程序員都會遇到的問題,下面這篇文章主要給大家介紹了關(guān)于Golang中error處理的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Go調(diào)用鏈可視化工具使用實(shí)例探究

    Go調(diào)用鏈可視化工具使用實(shí)例探究

    本文介紹一款工具?go-callvis,它能夠?qū)?Go?代碼的調(diào)用關(guān)系可視化出來,并提供了可交互式的?web?服務(wù),在接手他人代碼或調(diào)研一些開源項(xiàng)目時(shí),如果能夠理清其中的代碼調(diào)用鏈路,這將加速我們對實(shí)現(xiàn)的理解
    2024-01-01
  • go?doudou應(yīng)用中使用枚舉類型教程示例

    go?doudou應(yīng)用中使用枚舉類型教程示例

    這篇文章主要為大家介紹了go?doudou應(yīng)用中使用枚舉類型教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Go語言高效I/O并發(fā)處理雙緩沖和Exchanger模式實(shí)例探索

    Go語言高效I/O并發(fā)處理雙緩沖和Exchanger模式實(shí)例探索

    這篇文章主要介紹了Go語言高效I/O并發(fā)處理雙緩沖和Exchanger模式實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 淺談go語言中別名類型的使用

    淺談go語言中別名類型的使用

    類型別名是 Go 1.9 版本添加的新功能,主要用于解決代碼升級、遷移中存在的類型兼容性問題,本文主要介紹了go語言中別名類型的使用,感興趣的可以了解一下
    2024-01-01
  • 一文詳解Golang中new和make的區(qū)別

    一文詳解Golang中new和make的區(qū)別

    在Go語言中,new和make是兩個(gè)用于創(chuàng)建對象的內(nèi)建函數(shù)。本文將詳細(xì)介紹new和make的區(qū)別,并通過多個(gè)方面的分析和代碼示例,幫助大家理解它們的使用場景
    2023-05-05
  • 通過與Java功能上的對比來學(xué)習(xí)Go語言

    通過與Java功能上的對比來學(xué)習(xí)Go語言

    這篇文章主要介紹了通過與Java功能上的對比來學(xué)習(xí)Go語言的相關(guān)資料,需要的朋友可以參考下
    2023-02-02

最新評論