字符串 #

一、字符串基础 #

1.1 创建字符串 #

mojo
def main():
    let single_quote = 'Hello'
    let double_quote = "World"
    let multi_line = """
    This is a
    multi-line string
    """
    
    print(single_quote)
    print(double_quote)
    print(multi_line)

main()

1.2 字符串类型 #

mojo
def main():
    let str1: String = "Hello"
    let str2 = String("World")
    
    print(str1)
    print(str2)

main()

1.3 空字符串 #

mojo
def main():
    let empty1 = ""
    let empty2 = String()
    
    print(len(empty1))
    print(len(empty2))

main()

二、字符串操作 #

2.1 字符串拼接 #

mojo
def main():
    let first = "Hello"
    let second = "World"
    
    let combined = first + " " + second
    print(combined)

main()

2.2 字符串重复 #

mojo
def main():
    let str = "Ha"
    let repeated = str * 3
    print(repeated)

main()

2.3 字符串长度 #

mojo
def main():
    let text = "Hello, Mojo!"
    let length = len(text)
    print(length)

main()

2.4 字符串索引 #

mojo
def main():
    let text = "Hello"
    
    print(text[0])
    print(text[1])
    print(text[-1])
    print(text[-2])

main()

2.5 字符串切片 #

mojo
def main():
    let text = "Hello, World!"
    
    print(text[0:5])
    print(text[7:])
    print(text[:5])
    print(text[::2])
    print(text[::-1])

main()

三、字符串方法 #

3.1 大小写转换 #

mojo
def main():
    let text = "Hello World"
    
    print(text.upper())
    print(text.lower())
    print(text.title())
    print(text.capitalize())

main()

3.2 去除空白 #

mojo
def main():
    let text = "  Hello World  "
    
    print(text.strip())
    print(text.lstrip())
    print(text.rstrip())

main()

3.3 查找与替换 #

mojo
def main():
    let text = "Hello, World!"
    
    print(text.find("World"))
    print(text.replace("World", "Mojo"))
    print(text.count("l"))

main()

3.4 分割与连接 #

mojo
def main():
    let text = "apple,banana,orange"
    let parts = text.split(",")
    
    for part in parts:
        print(part)
    
    let joined = "-".join(parts)
    print(joined)

main()

3.5 判断方法 #

mojo
def main():
    let text = "Hello123"
    
    print(text.startswith("Hello"))
    print(text.endswith("123"))
    print(text.isalpha())
    print(text.isdigit())
    print(text.isalnum())

main()

四、字符串格式化 #

4.1 f-string格式化 #

mojo
def main():
    let name = "Mojo"
    let version = 0.8
    
    print(f"Language: {name}")
    print(f"Version: {version}")
    print(f"{name} v{version}")

main()

4.2 格式化表达式 #

mojo
def main():
    let a = 10
    let b = 20
    
    print(f"Sum: {a + b}")
    print(f"Product: {a * b}")

main()

4.3 格式化规范 #

mojo
def main():
    let pi = 3.14159265
    let num = 42
    
    print(f"Pi: {pi:.2f}")
    print(f"Number: {num:05d}")
    print(f"Hex: {num:#x}")
    print(f"Binary: {num:#b}")

main()

4.4 format方法 #

mojo
def main():
    let template = "Hello, {}!"
    print(template.format("Mojo"))
    
    let template2 = "{0} + {1} = {2}"
    print(template2.format(1, 2, 3))
    
    let template3 = "{name} is {age} years old"
    print(template3.format(name="Alice", age=30))

main()

五、转义字符 #

5.1 常用转义字符 #

mojo
def main():
    print("Newline:\nSecond line")
    print("Tab:\tIndented")
    print("Backslash: \\")
    print("Quote: \"Hello\"")
    print("Single quote: \'Hi\''")

main()

5.2 原始字符串 #

mojo
def main():
    let raw = r"Path: C:\Users\name\file.txt"
    print(raw)

main()

六、字符串编码 #

6.1 字节转换 #

mojo
def main():
    let text = "Hello"
    let bytes = text.encode()
    
    print(bytes)
    print(len(bytes))

main()

6.2 解码字节 #

mojo
def main():
    let bytes_data = b"Hello"
    let text = bytes_data.decode()
    
    print(text)

main()

七、字符串比较 #

7.1 相等比较 #

mojo
def main():
    let str1 = "Hello"
    let str2 = "Hello"
    let str3 = "World"
    
    print(str1 == str2)
    print(str1 == str3)

main()

7.2 字典序比较 #

mojo
def main():
    let str1 = "apple"
    let str2 = "banana"
    
    print(str1 < str2)
    print(str1 > str2)

main()

八、字符串与数字转换 #

8.1 字符串转数字 #

mojo
def main():
    let int_str = "42"
    let float_str = "3.14"
    
    let int_val = Int(int_str)
    let float_val = Float64(float_str)
    
    print(int_val)
    print(float_val)

main()

8.2 数字转字符串 #

mojo
def main():
    let num = 42
    let pi = 3.14159
    
    let str1 = String(num)
    let str2 = String(pi)
    
    print(str1)
    print(str2)

main()

九、字符串性能 #

9.1 字符串构建 #

mojo
def main():
    var parts: List[String] = []
    
    for i in range(1000):
        parts.append(String(i))
    
    let result = ",".join(parts)
    print(len(result))

main()

9.2 避免频繁拼接 #

mojo
def main():
    var result = ""
    
    for i in range(1000):
        result += String(i) + ","

main()

十、总结 #

本章学习了:

  • 字符串创建与基本操作
  • 字符串索引与切片
  • 字符串方法
  • 格式化输出
  • 转义字符
  • 编码转换
  • 性能优化

下一章,我们将学习集合类型。

最后更新:2026-03-27