# 字符串

**字符串类型与内置方法。** 类型关键字是 [字](字.md)(`字符串`/`整数`/`逻辑` 等为可读别名);本页汇总字符串的常用成员。

## 属性与方法

| 成员 | 说明 |
|------|------|
| `s.长度` / `s.字节数` | **字节**长度(中文一个字 3 字节)——两者同值 |
| `s.字符数` | **字符**个数(与字节数区分:`"玄铁XuanTie".长度=13`,`.字符数=9`) |
| `s.截取(起, 止)` | 子串,下标从 0 起、**左闭右开**;下标按**字符**计(`"玄铁XuanTie".截取(2,6)="Xuan"`) |
| `s.包含?(子串)` / `s.含?(子串)` | 是否包含子串,返回布尔(两种写法等价) |
| `s.替换(旧, 新)` | 替换全部出现 |
| `s.分割(分隔符)` | 分割为数组;语义同 Python `split`(**保留空段**;分隔符为 `""` 时按字符拆分) |
| JSON 互转 | 用全局的 [化](化.md) / [解](解.md) |

```xuantie
设 s = "玄铁XuanTie"
示(字(s.长度))                 // 字节数(13)
示(s.截取(0, 2))               // "玄铁"(按字符下标)
示(字(s.字符数))               // 字符数(9)
示(s.包含?("Xuan"))            // 真
示(字(s.字节数))               // 字节数(13)
示("a,b,,c".分割(","))         // 4 段(保留空段)
示("你好".分割(""))            // ["你", "好"]
```

## 注意

*   本词是**保留字**:不能用作变量名、函数名、参数名等标识符(完整规则与清单见 [词法与基础语法](../手册/01_词法与基础语法.md#保留字不可作标识符))。
*   `截取` 的下标是**字符**下标;但 `长度`/`字节数` 返回的是**字节**数,要字符数请用 `字符数`。
*   没有 `拼接` 方法——拼接用 `&` 运算符。
*   字符串不可变:`替换` 返回新字符串,原值不变。
*   拼接用 `&`;`+` 是数值运算——把字符串与数字混用时用 `&` 与 `字(x)`。

## 相关

*   [字](字.md)、[字节](字节.md)、[数组](数组.md)
*   [标准库与 Runtime API](../手册/06_标准库与RuntimeAPI.md#字符串方法) —— 字符串方法总览
*   [06 数组编程指南](../06_数组编程指南.md) —— 数组(字符串的常见搭档)