string是什么数据类型:字符串类型,存储文本
string是什么数据类型:它是字符串类型,用来承载文本字符序列,由一个或多个字母、数字、符号、中文组成,存入string的内容会被当作文本处理,不会参与数学运算,该类型在Java、C、Python、JavaScript里定义存在差异,Python中string属于不可变序列,Java中string是引用类型而非基本数据类型,适合存储姓名、地址、备注这类文本信息,不适合存放需要计算的数值,如果你要做加减运算,需要先把string转为数字类型。
string数据类型的分类差异
不同编程语言对string的归类有明显区别,这也是新手最容易混淆的地方。Java、C#里的string是引用数据类型,变量保存的是字符串对象的内存地址,不是字符本身;C语言没有原生string类型,依靠char字符数组配合结束标记\0模拟字符串;Python、JavaScript把string作为内置原始类型,同时具备对象特性,可以直接调用内置方法处理文本。
区分引用类型和基本类型的简单办法:赋值之后修改其中一个变量的值,观察另一个变量是否跟着变化。基本类型会独立拷贝一份数据,引用类型多个变量指向同一块内存对象。
string数据类型的核心特性
不可变性是大多数主流语言string的共同特征。你对字符串做拼接、替换操作时,不会修改原有字符串,程序会在内存新建一个字符串对象,旧字符串等待垃圾回收。频繁循环拼接大量文本,会产生较多临时对象,带来一定性能开销。
单引号、双引号、三引号是定义字符串的常用包裹符号,不同语言规则不一样。Python中单双引号作用一致,三引号支持换行文本;JavaScript中单双引号无功能区别;SQL里一般用单引号包裹字符串内容。
转义字符用来表示无法直接录入的特殊字符。
- \n:换行符
- \t:制表符
- \"或\':输出引号本身
- \\:输出反斜杠
string和数值类型的对比
| 类型 | 存储内容 | 运算能力 | 示例 |
|---|---|---|---|
| string | 文本字符 | 仅支持拼接、比较 | "123" |
| int | 整数 | 加减乘除数学运算 | 123 |
| float | 小数 | 加减乘除数学运算 | 123.45 |
很多新手会直接用带引号的数字做加法,比如"5"+"3",代码输出结果是"53",而不是8,这是字符串拼接逻辑,不是加法计算。想要计算,你必须调用类型转换函数,把string转为int或者float。
类型转换存在失败场景。当string里面包含字母、中文时,强行转数字会抛出报错,你需要提前做格式校验。
该类型的适用边界是,适合静态文本存储,不适合高频修改超长文本场景,高频文本拼接优先选用StringBuilder、StringBuffer这类可变容器。
空字符串和null不是同一个东西。空字符串""是已经创建好的字符串对象,里面没有字符;null代表变量没有指向任何字符串对象,访问null的方法会触发空指针异常。
