menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right All_wiki chevron_right the-way-to-go_ZH_CN chevron_right eBook chevron_right 18.1.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    18.1.md
    1.21 KB / 2024-07-16 23:14:29
        # 18.1 字符串
    
    (1)如何修改字符串中的一个字符:
    
    ```go
    str:="hello"
    c:=[]byte(str)
    c[0]='c'
    s2:= string(c) // s2 == "cello"
    ```
    
    (2)如何获取字符串的子串:
    
    ```go
    substr := str[n:m]
    ```
    
    (3)如何使用 `for` 或者 `for-range` 遍历一个字符串:
    
    ```go
    // gives only the bytes:
    for i:=0; i < len(str); i++ {
    … = str[i]
    }
    // gives the Unicode characters:
    for ix, ch := range str {
    …
    }
    ```
    
    (4)如何获取一个字符串的字节数:`len(str)`
    
       如何获取一个字符串的字符数:
    
       (最快速)使用 `utf8.RuneCountInString(str)` 
    
       或使用 `len([]rune(str))` 
    
    (5)如何连接字符串:
    
       (最快速)使用 `bytes.Buffer`(参考[章节 7.2](07.2.md))
    
       或使用 `Strings.Join()`(参考[章节 4.7](04.7.md))
    
       或使用 `+=`:
    
     ```go
     str1 := "Hello " 
     str2 := "World!"
     str1 += str2 //str1 == "Hello World!"
     ```
    
    (6)如何解析命令行参数:使用 `os` 或者 `flag` 包(参考[例 12.4](examples/chapter_12/fileinput.go))
    
    ## 链接
    
    - [目录](directory.md)
    - 上一节:[出于性能考虑的实用代码片段](18.0.md)
    - 下一节:[数组和切片](18.2.md)
    
    
    links
    file_download