字符串常用方法第一弹

简介: 字符串常用方法在这里,我们讲述一下string的常见方法,在我们时机开发中,字符串的使用频率还是很高的,所以这些常见的方法我们需要记住并且熟练运用。下面我们就来了解字符串有哪些常用的方法吧!

字符串常用方法

在这里,我们讲述一下string的常见方法,在我们时机开发中,字符串的使用频率还是很高的,所以这些常见的方法我们需要记住并且熟练运用。下面我们就来了解字符串有哪些常用的方法吧!

注意:

由于字符串的不可变性,所以字符串的所有方法都是返回一个新的字符串,而不是修改原来的字符串。(原来的字符串不变)

查找字符串

indexOf()

value = str.indexOf('要查找的字符串',[查找开始的位置(索引)]);
复制代码

这个方式是从字符串索引号[0]开始向后面查找,如果找到了,就返回第一个字符的索引号(不会继续向后查找),如果没有找到,就返回-1。

这个方法后面那个查找开始位置为可选参数,如果我们不填写,默认是从索引号[0]开始查找。

那么:

  • 如果查找结果返回的是0,说明我们要查找的参数位于字符串的开头。
  • 如果查找结果返回的是-1,说明我们要查找的参数在字符串里面不存在。

栗子时间:

var str = 'hello world';
console.log(str.indexOf('hello')); // 0
console.log(str.indexOf('world')); // 6
console.log(str.indexOf('o',5)); // 7
console.log(str.indexOf('world',7)); // -1
复制代码

lastIndexOf()

value = str.lastIndexOf('要查找的字符串',[查找开始的位置(索引)]);
复制代码

这个方法是从字符串的最后一个字符开始向前面查找,如果找到了,就返回第一个字符的索引号(不会继续向前查找),如果没有找到,就返回-1。

这个方法后面那个查找开始位置为可选参数,如果我们不填写,默认是从索引号[0]开始查找。

那么:

  • 如果查找结果返回的是0,说明我们要查找的参数位于字符串的开头。
  • 如果查找结果返回的是-1,说明我们要查找的参数在字符串里面不存在。

栗子时间:

var str = 'hello world';
console.log(str.lastIndexOf('hello')); // 0
console.log(str.lastIndexOf('world')); // 6
console.log(str.lastIndexOf('o',6)); // 4
console.log(str.lastIndexOf('world', 7)); // 6
复制代码

进阶

  • 通过前面的学习,我们知道了indexOf()lastIndexOf()这两个方法,那么我们就可以通过这两个方法来判断一个字符串是否包含另一个字符串了。
    var str = 'hello world'; if(str.indexOf('hello') != -1){ console.log('包含'); }else{ console.log('不包含'); }
  • indexOf()lastIndexOf()有一个缺点:它只能返回查找到的第一个字符的索引号,如果我们要查找的字符串在字符串里面出现了多次,那么我们就无法得到它的索引号了。那么我们就可以通过循环的方法来解决这个问题。
    var str = 'hello world oo'; var q = str.indexOf('o'); while (q <= str.length) { if (str.indexOf('o', q) != -1) { q = str.indexOf('o', q); console.log('o' + q); // 4 } else { break; } q++; }

search()

value = str.search('要查找的字符串');
复制代码

这个方法是用来查找字符串里面是否包含另一个字符串的,如果找到了,就返回第一个字符的索引号(不会继续向后查找),如果没有找到,就返回-1。

include()

value = str.include('要查找的字符串',[position]);
复制代码

这个方法是用来查找字符串里面是否包含另一个字符串的,如果找到了,就返回true,如果没有找到,就返回false。

参数中的position,代表我们检索开始的位置,如果不填写,默认是从索引号[0]开始检索;如果指定就从指定位置开始检索。

let str = 'hello world';
console.log(str.include('hello')); // true
console.log(str.include('world')); // true
console.log(str.include('hello',1)); // false
console.log(str.include('world',7)); // false
复制代码

startsWith()&endsWith()

value = str.startsWith('要查找的字符串',[position]);
value = str.endsWith('要查找的字符串',[position]);
复制代码

这两个方法是用来判断字符串是否以指定的字符串开头或结尾的,如果是,就返回true,如果不是,就返回false。

注意:

这个两个方法中的position参数意义是不同的:

  • startsWith()中的position代表我们检索开始的位置,如果不填写,默认是从索引号[0]开始检索,直到字符串末尾;如果指定就从指定位置开始检索,直到字符串末尾。[position,字符串末尾]
  • endsWith()中的position代表我们检索结束的位置,如果不填写,默认是从字符串末尾开始检索,直到索引号[0];如果指定就从指定位置开始检索,直到索引号[0]。[0,position)
• let str = 'hello world'; console.log(str.startsWith('hello')); // true console.log(str.startsWith('world')); // false
console.log(str.endsWith('hello')); // false console.log(str.endsWith('world')); // true
console.log(str.startsWith('hello',1)); // false console.log(str.startsWith('world',7)); // false
console.log(str.endsWith('hello',1)); // false console.log(str.endsWith('world',7)); // false
相关文章
|
数据采集 机器学习/深度学习 数据挖掘
处理异常值:详细教程与实例分析
处理异常值:详细教程与实例分析
1949 0
|
存储 缓存 NoSQL
Redis点赞业务的设计与实现(Redis键值设计)
案例分享Redis点赞业务实现!
2005 2
Redis点赞业务的设计与实现(Redis键值设计)
|
2月前
|
Kubernetes 安全 开发者
手写 Harness 底层架构: 基于 Deep Agents 深入底层 Sandbox沙盒Infra 基础设施架构
手写 Harness 底层架构: 基于 Deep Agents 深入底层 Sandbox沙盒Infra 基础设施架构
手写 Harness 底层架构: 基于 Deep Agents 深入底层 Sandbox沙盒Infra 基础设施架构
|
搜索推荐 数据可视化 数据安全/隐私保护
免费、强大的开源笔记软件Joplin综合评测 —印象笔记的开源替代
Joplin 介绍 绝大部分开源工具都是免费的。如果寻找免费的笔记应用,自然需要考虑开源笔记软件。 在我的视野范围内,常见开源笔记软件包括Boostnote、GitNote、Joplin. 其中,前两者都是面向开发人员,全平台、支持中文、支持浏览器插件和扩展。而 Joplin 则面向一般用户。下面主要介绍 Joplin.
2943 0
免费、强大的开源笔记软件Joplin综合评测 —印象笔记的开源替代
|
10月前
|
存储 缓存 PyTorch
如何优雅地为 TensorRT-LLM 添加新模型
本指南详细介绍如何在TensorRT-LLM中优雅集成新大语言模型,涵盖模型配置、定义、权重加载与注册全流程,支持作为核心模块或独立扩展集成,助力高效推理部署。(238字)
571 1
|
机器学习/深度学习 JSON 算法
京东拍立淘图片搜索 API 接入实践:从图像识别到商品匹配的技术实现
京东拍立淘图片搜索 API 是基于先进图像识别技术的购物搜索接口,支持通过上传图片、URL 或拍摄实物搜索相似商品。它利用机器学习和大数据分析,精准匹配商品特征,提供高效、便捷的搜索体验。接口覆盖京东海量商品资源,不仅支持外观、颜色等多维度比对,还结合用户行为数据实现智能推荐。请求参数包括图片 URL 或 Base64 编码,返回 JSON 格式的商品信息,如 ID、价格、链接等,助力消费者快速找到心仪商品,满足个性化需求。
968 18
|
9月前
|
SQL 人工智能 数据挖掘
拒绝"数字坟墓":如何用AI让沉睡的数据开口说话?
很多数据报告沦为"数字坟墓",核心在于缺乏从数据到洞察的翻译。本文提供一套"数据分析报告生成指令",帮助开发者和分析师利用AI跨越技术与商业的鸿沟,将枯燥报表转化为驱动决策的行动指南。
472 4
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
821 62
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
存储 运维 算法
蚂蚁Raft一致性算法库SOFAJRaft深入分析
大家好,我是 V 哥。SOFAJRaft 是蚂蚁金服开源的一款基于 Raft 共识算法的 Java 实现,特别适合高负载、低延迟的分布式系统。它支持 Multi-Raft-Group,能同时处理多个 Raft 集群,具备扩展性和强一致性保障。项目源自百度的 braft,并在性能和功能上进行了优化。本文将深入探讨 SOFAJRaft 的核心源码实现,包括 Leader 选举、日志复制、一致性维护、日志管理和快照机制等。通过关键代码展示其在节点初始化、日志复制、一致性维护等方面的设计思路。希望帮助大家更好地理解 Raft 算法,求关注和点赞,感谢!
613 2
蚂蚁Raft一致性算法库SOFAJRaft深入分析
|
前端开发 API Docker
前端微服务
前端微服务
619 0