Hike News
Hike News

Go初識-day4-格式化輸出、基本字符串操作

格式化輸出至終端

使用fmt.Printf()調用格式化輸出至終端

一般類型

%v:以原樣打印,輸出相應值的默認格式 –> 不知道如何輸出也可用
%T:打印相應值的類型(type)
%%:打印出百分號

bool類型

%t:打印true或是false –> 一般也可用%v完成

整數

%b:二進制表示
%d:十進制表示
%o:八進制表示
%c:相應的Unicode碼所表示的字符

浮點數及其複合構成

%e:科學記號表示,-1234.56e+78
%E:科學記號表示,-1234.56E+78
%f:有小數點而無指數表示,123.456

字符串與字符切片

%s:打印字符串
%q:打印字符串時,兩邊也會加入雙引號
%x:十六進制,小寫字母
%X:十六進制,大寫字母

指針

%p:打印內存地址,時溜進制表示,前綴為0x


格式化輸出到字符串

使用fmt.Sprintf()調用格式化輸出至字符串中
可用於數字類型轉換成字符串類型
與前一節使用方法一樣,只是返回的為字符串類型

example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import "fmt"

func main(){
var integer int = 10000
var float_num float64 = 0.0005

integer_str := fmt.Sprintf("%d",integer)
float_num_str := fmt.Sprintf("%f",float_num)

fmt.Printf("integer_str type:%T,Value:%s\n",integer_str,integer_str)
fmt.Printf("float_num_str type:%T,Value:%s\n",float_num_str,float_num_str)
}

result

1
2
integer_str type:string,Value:10000
float_num_str type:string,Value:0.000500

拼接字符串

使用運算符拼接

字符串之間可用運算符+拼接

example

1
2
3
4
5
6
7
8
9
10
11
package main

import "fmt"

func main(){
var a string = "Hello"
b := "World"

str := a + " " + b
fmt.Println(str)
}

result

1
Hello World

使用輸出格式化拼接

使用fmt.Sprintf()拼接

example

1
2
3
4
5
6
7
8
9
10
11
package main

import "fmt"

func main(){
var a string = "Hello"
b := "World"

str := fmt.Sprintf("%s %s",a,b)
fmt.Println(str)
}

result

1
Hello World

字符串長度

使用len()方法求字符串長度

example

1
2
3
4
5
6
7
8
9
package main

import "fmt"

func main(){
var a = "Hello World"
length_a := len(a)
fmt.Printf("string a length is %d",length_a)
}

result

1
string a length is 11

字符串切片

擷取字符串中想要的部分

example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import "fmt"

func main(){
var a string = "Hello new World"

Hello_str := a[:5] //[1]
new_str := a[6:9] //[2]
World_str := a[10:] //[3]

fmt.Println(Hello_str)
fmt.Println(new_str)
fmt.Println(World_str)
}

[1] 若取值index從0開始,可省略不寫
[2] 取值:左邊為要開始取值的index,右邊為取值結束的index+1
[3] 若取值結束需取到最後:右邊可省略不寫

result

1
2
3
Hello
new
World

字符串反轉

example 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import "fmt"

func string_reverse(a string)string{
var result string
for i:=0;i<len(a);i++{
pick := a[len(a)-1-i:len(a)-i]
result += pick
}
return result
}

func main(){
var a string = "Hello World"
result := string_reverse(a)
fmt.Println(result)
}

example 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import "fmt"

func string_reverse(str string)string{
var result string
strLen := len(str)
for i:=0;i<strLen;i++{
result += fmt.Sprintf("%c",str[len(str)-i-1])
}
return result
}

func main(){
var a string = "Hello World"
result := string_reverse(a)
fmt.Println(result)
}

result

1
dlroW olleH