1. String类型的定义
1.1 String类型可以通过双引号或单引号表示
两者完全等效
1.2 String类型在程序处理中的转换
- 引用类型:调用toString()得到不同类型值的字符串表示
- 基本数据类型:将字面值直接转换为字符串表示形式
使用加号+可以直接拼接一个空字符串
1.3 new String()构造函数的定义与调用
与String()函数采用一样的类型转换策略,最后返回一个String类型对象的实例。
2. String对象在作比较时的区别
- 采用字面量和调用String()函数方式得到的是基本字符串
- 采用new运算符生成的字符串是字符串对象
- 基本字符串只需比较字符串值,字符串对象比较对象所在地址
3. 函数的调用
- 在String对象的原型链上有一系列函数,可通过String对象实例进行调用处理字符串
- 采用字面量方式定义的字符串也可以利用包装类型调用原型链上的函数
- 基本字符串和字符串对象在经过eval()函数处理时会产生不同结果
4. String类型常见算法
4.1 字符串逆序输出
算法 | 实现 |
---|
1. 借助数组的reverse() | |
2. 利用字符串本身的charAt() | |
3. 利用递归 | |
4. 利用call()改变slice()函数的执行主体 | |
5. 借助栈的先进后出原则 | |
4.2 统计字符串中出现次数最多的字符及出现的次数
算法 | 实现 |
---|
1. 利用key-value对象存储字符及对应的出现次数 | |
2. 将字符串处理为数组,通过forEach()遍历每个字符 | |
3. 对字符串进行排序,通过lastIndexOf()获取索引值,判断索引值大小以获取出现的最大次数 | |
4. 将字符串进行排序,通过正则表达式将字符串进行匹配拆分,组合相同字符,最后判断字符出现次数 | |
5. 借助replace() | |
4.3 去除字符串中重复的字符
算法 | 实现 |
---|
1. 使用key-value对象存储,key表示唯一的字符,之后将所有唯一的key拼接在一起 | |
2. 借助数组的filter(),在其中使用indexOf()判断 | |
3. 借助Set数据结构,将数组元素自动去重 | |
4.4 判断一个字符串是否为回文字符串
算法 | 实现 |
---|
1. 将字符串按从前往后顺序和从后往前顺序的字符逐个比较,遇到不同的返回false,否则为true | |
2. 采用递归逐个比较 | |
3. 将字符串逆序处理与原字符串比较 | |