From 7ea77a4738f5860e26176701d7d91cecafa0a032 Mon Sep 17 00:00:00 2001 From: songleo Date: Sun, 3 Jan 2016 13:10:15 +0800 Subject: [PATCH] new file: 18.5.md --- eBook/18.5.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 eBook/18.5.md diff --git a/eBook/18.5.md b/eBook/18.5.md new file mode 100644 index 0000000..7dfcda6 --- /dev/null +++ b/eBook/18.5.md @@ -0,0 +1,67 @@ +# 18.1 字符串 + +(1)如何修改字符串中的一个字符: + +```go +str:="hello" +c:=[]byte(s) +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([]int(str)) //TBD` + +(5)如何连接字符串: + + 最快速: `with a 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) +- 上一章:[运算符模板和接口](17.4.md) +- 下一节:[字符串](18.1.md) + +## 链接 + +- [目录](directory.md) +- 上一章:[运算符模板和接口](17.4.md) +- 下一节:[字符串](18.1.md) \ No newline at end of file