Golang 字符串類型和字符串操作

Golang 字符串類型和字符串操作

字符串類型

  • 可解釋的字符串
  • 可解釋的字符串("")支持特殊字符 \n, \f(換頁), \t(Tab鍵), \r, \b, \v
  • 原生字符串
package main

import "fmt"

func main() {
	var name = "Bo\ty"
	// "" : 可解釋的字符串
	//""支持特殊字符 \n, \f(換頁), \t(Tab鍵), \r, \b, \v
	//``原生字符串
	var desc = `我來自\t中國`
	fmt.Println(name)
	fmt.Println(desc)
}

標準輸出

Bo      y
我來自\t中國

字符串操作

算數運算及關係運算

  • 算數運算符:+ (字符串連接)
  • 關係運算 (==, !=, >, >=, <=)
package main

import "fmt"

func main() {
	//操作
	//算數運算符:+ (字符串連接)
	name := "boy"
	fmt.Println("我叫" + name)
	//關係運算 (==, !=, >, >=, <=)
	fmt.Println("ab" == "bb")
	fmt.Println("ab" != "bb")
	fmt.Println("ab" < "bb")
	fmt.Println("ab" <= "bb")
	fmt.Println("ab" > "bb")
	fmt.Println("ab" >= "bb")
	fmt.Println("bb" >= "b")
}

標準輸出

我叫boy
false
true
true
true
false
false
true

賦值

package main

import "fmt"

func main() {
	//賦值
	s := "我叫"
	s += "boy"
	fmt.Println(s )
}

標準輸出

我叫boy

索引

  • 字符串內容只能爲ASCII碼
  • 索引:字符串定義後,每個字符串會有一個索引(編號,從0 - (n-1) (n爲字符串長度))
	package main

import "fmt"

func main() {
	name := "boy"
	//字符串內容只能爲ASCII碼
	//索引:字符串定義後,每個字符串會有一個索引(編號,從0 - (n-1) (n爲字符串長度))
	fmt.Printf("%T, %c \n", name[0], name[0])
}

標準輸出

uint8, b

切片

  • 切片:拿出字符串中的一部分,[start:end],取出從start到(end-1)的字符,必須是ASCII碼
package main

import "fmt"

func main() {
	name := "boy"
	desc := "我來自北京"
	//切片:拿出字符串中的一部分,[start:end],取出從start到(end-1)的字符,必須是ASCII碼
	fmt.Printf("%T, %s \n", name[0:2], name[0:2])
	fmt.Printf("%T, %s \n", name[0:2], name[0:2])
	fmt.Printf("%T, %s \n", desc[0:2], desc[0:2])
}

標準輸出

string, bo
string, bo
string, ��

獲取字符串長度

package main

import "fmt"

func main() {
	desc := "我來自北京"
	fmt.Println(len(desc))
}

標準輸出

15

指針

  • 指針聲明需要指定存儲地址中對應數據的類型,並使用*作爲類型前綴。指針變量聲 明後會被初始化爲nil,表示空指針
package main

import "fmt"

func main() {
	A := 2
	B := A
	fmt.Println(A, B)
	C := &A
	//C取A在內存中的地址
	fmt.Printf("%T, %T\n", C, C)
	//通過指針修補改A的值
	*C = 4
	fmt.Println(A)
}

從標準輸入中掃描用戶輸入的數據

package main

import "fmt"

func main() {
	var name string
	fmt.Print("請輸入名字:")
	fmt.Scan(&name)
	fmt.Print("你的名字是:", name)


	var age int
	fmt.Print("\n請輸入年齡:")
	fmt.Scan(&age)
	fmt.Print("你的年齡是:", age)

	var height float64
	fmt.Print("\n請輸入身高:")
	fmt.Scan(&height)
	fmt.Print("你的身高是:", height)
}

標準輸出

請輸入名字:haha
你的名字是:haha
請輸入年齡:18
你的年齡是:18
請輸入身高:19
你的身高是:19

如果之前輸入的;類型錯誤,無法轉換會影響後續輸入
示例

請輸入名字:haha
你的名字是:haha
請輸入年齡:ee
你的年齡是:0
請輸入身高:你的身高是:0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章