### 11. 字符串 String
> 配套示例:`examples/11_string.gd`
String 在 GDScript 中本身就是一种内置类,方法非常丰富。
```gdscript
int float bool String
注意String第一个字母是大写
var s := "Hello, GDScript!"
# 可以是空字符串,即空格
s.length() # 16
s[0] # "H"
s.substr(0, 5) # "Hello" 注意函数里面的参数不是索引号,而是从0号位到第5号位置的字符的个数
s.to_lower() # "hello, gdscript!"
s.to_upper() # "HELLO, GDSCRIPT!"
s.contains("GD") # true
s.begins_with("Hello") # true
s.ends_with("!") # true
s.replace("GDScript", "Godot")
# 拆分与拼接
"apple,banana,cherry".split(",") # ["apple","banana","cherry"] 按照,进行拆分
" | ".join(["a", "b", "c"]) # "a | b | c"
" hello ".strip_edges() # "hello" 只去字符串前端和后端的空格,字符串中间的空格不处理,一般用于用户输入名称登录,系统自动处理名称使用
# 转数字
"42".to_int() # 42
"3.14".to_float() # 3.14
```
## 第 11 节:字符串 String
##
## 演示 String 的常用方法。
extends Node
func _ready() -> void:
var s := "Hello, GDScript!"
#var s :String = "Hello, GDScript!"
# 长度与索引
print("长度:", s.length())
print("第 0 个字符:", s[0]) # H
print("子串 [0:5]:", s.substr(0, 5)) # Hello
# 大小写
print("小写:", s.to_lower())
print("大写:", s.to_upper())
# 包含 / 前缀 / 后缀
print("包含 GD?", s.contains("GD"))
print("以 Hello 开头?", s.begins_with("Hello"))
print("以 ! 结尾?", s.ends_with("!"))
# 替换
print("替换 GDScript:", s.replace("GDScript", "Godot"))
# 拆分与拼接
var csv := "apple,banana,cherry"
var parts := csv.split(",")
print("拆分:", parts)
print("再拼接:", " | ".join(parts))
# 去除首尾空白
var msg := " hello world "
print("strip_edges:[", msg.strip_edges(), "]")
# 转换数字
var num_str := "34" #如果字符串里面包含文字字符,godot高版本会自动去除非数字字符,而保留数字字符再进行转换
print("转 int:", num_str.to_int())
var float_str := "3.14"
print("转 float:", float_str.to_float())
# 字符串与值类型混拼,要用 str()
var score := 99
print("得分:" + str(score))
