Z
ZHANK
集合与枚举

字符串处理

单引号/双引号、字符串插值、gsub 替换、split/join、编码

字符串处理

Ruby 字符串方法极其丰富——gsub 正则替换、split/join 互转、<< 拼接、编码支持。

学完本章你将: 掌握插值、gsub/sub、split/join、编码。


基础操作

ruby
s = "Hello, World"

# 插值
"Hello, #{name}!"

# 拼接
s + "!!"        # 创建新字符串
s << "!!"       # 原地修改(高效)

# 大小写
s.upcase        # "HELLO, WORLD"
s.downcase      # "hello, world"
s.capitalize    # "Hello, world"

# 查询
s.length        # 12
s.include?("World")  # true
s.index("World")     # 7
s.start_with?("He")  # true

替换与正则

ruby
s = "Hello World"

# sub —— 替换第一个匹配
s.sub("World", "Ruby")   # "Hello Ruby"
s.sub(/o/, "0")          # "Hell0 World"

# gsub —— 替换所有匹配
s.gsub(/o/, "0")         # "Hell0 W0rld"
s.gsub(/\w+/) { |m| m.upcase }  # "HELLO WORLD"

分割与连接

ruby
"a,b,c".split(",")    # ["a", "b", "c"]
"a,b,c".split(",", 2) # ["a", "b,c"]

["a", "b", "c"].join("-")  # "a-b-c"

# 去除空白
"  hi  ".strip       # "hi"
"  hi  ".lstrip      # "hi  "
"  hi  ".rstrip      # "  hi"

编码

ruby
"你好".encoding          # #<Encoding:UTF-8>
"你好".bytes             # [228, 189, 160, 229, 165, 189]
"你好".each_char { |c| puts c }  # 你 好