JavaScript包装类(二)——String类

简介: 它们的区别是索引的方式没有找到会返回undefined,而charAt没有找到会返回空字符串;

image.png


基本使用


  • String常见的属性:
  • length:获取字符串的长度;
  • String也有很多常见的方法和操作,我们来进行学习。
  • 操作一:访问字符串的字符
  • 使用方法一:通过字符串的索引 str[0]
  • 使用方法二:通过str.charAt(pos)方法
  • 它们的区别是索引的方式没有找到会返回undefined,而charAt没有找到会返回空字符串;
  • 练习:字符串的遍历
  • 方式一:普通for循环
  • 方式二:for..of遍历


var message = "Hello World"
// 1.属性: length
console.log(message.length)
// 2.访问字符串中某个位置的字符
console.log(message[4])
console.log(message.charAt(4))
console.log(message[20])
console.log(message.charAt(20))
// 3.字符串的遍历
// for普通遍历
for (var i = 0; i < message.length; i++) {
    console.log(message[i])
}
// for..of的遍历 -> 迭代器
// 目前可迭代对象: 字符串/数组
// 对象是不支持for..of的
// String对象内部是将字符串变成了一个可迭代对象
for (var char of message) {
    console.log(char)
}


修改字符串


  • 字符串的不可变性:
  • 字符串在定义后是不可以修改的,所以下面的操作是没有任何意义的;

image.png


  • 所以,在我们改变很多字符串的操作中,都是生成了一个新的字符串;
  • 比如改变字符串大小的两个方法
  • toLowerCase():将所有的字符转成小写;
  • toUpperCase() :将所有的字符转成大写;


image.png


查找字符串


  • 在开发中我们经常会在一个字符串中查找或者获取另外一个字符串,String提供了如下方法:
  • 方法一:查找字符串位置
  • 从fromIndex开始,查找searchValue的索引;
  • 如果没有找到,那么返回-1;
  • 有一个相似的方法,叫lastIndexOf,从最后开始查找(用的较少)
  • 方法二:是否包含字符串
  • 从position位置开始查找searchString, 根据情况返回 true 或 false
  • 这是ES6新增的方法;


var message = "my name is baj"
var name = "baj"
// 判断一个字符串中是否有另外一个字符串
// 1.indexOf(searchString, fromIndex)
/*
  index:
    情况一: 搜索到, 搜索字符串所在索引位置
    情况二: 没有搜索到, 返回-1
*/
var index = message.indexOf(name)
if (message.indexOf(name) !== -1) {
  console.log("message中包含name,所在索引位置:", message.indexOf(name))
} else {
  console.log("message不包含name")
}
// 2.includes: ES6中新增一个方法, 就是用来判断包含关系
if (message.includes(name)) {
  console.log("message中包含name")
}


判断是否以某字符串开头和结尾


  • 方法三:以xxx开头
  • 从position位置开始,判断字符串是否以searchString开头;
  • 这是ES6新增的方法,下面的方法也一样;
  • 方法四:以xxx结尾
  • 在length长度内,判断字符串是否以searchString结尾;


// 3.startsWith: 是否以xxx开头
if (message.startsWith("my")) {
  console.log("message以my开头")
}
// 4.endsWith: 是否以xxx结束
if (message.endsWith("baj")) {
  console.log("message以baj结尾")
}


替换字符串 & 截取子字符串


  • 方法五:替换字符串
  • 查找到对应的字符串,并且使用新的字符串进行替代;
  • 这里也可以传入一个正则表达式来查找,也可以传入一个函数来替换;


// 5.replace 替换字符串
var newMessage = message.replace("baj", "kobe")
console.log(message)
console.log(newMessage)


  • 方法六:获取子字符串(这种负数啥的不用记到底是怎么样的,用的时候试一下就知道了


image.png


var message = "Hello World"
// 获取子字符串
console.log(message.slice(3, 7))
console.log(message.slice(3, -1)) //lo Worl  从3截取到从后往前的1位置
console.log(message.slice(-3)) // rld   截取后3个
console.log(message.slice(3))
// substr
console.log(message.substr(3, 7))


  • 开发中推荐使用slice方法。


其它方法


  • 方法七:拼接字符串
  • 方法八:删除首位空格
  • 方法九:字符串分割
  • separator:以什么字符串进行分割,也可以是一个正则表达式;
  • limit:限制返回片段的数量;
  • 更多的字符串的补充内容,可以查看MDN的文档:


var str1 = "Hello"
var str2 = "World"
var str3 = "kobe"
// 1.字符串拼接
// +
// var newString = str1 + str2 + str3
// console.log(newString)
// concat方法: 链式调用
var newString2 = str1.concat(str2).concat(str3)
var newString3 = str1.concat(str2, str3, "abc", "cba")
console.log(newString2)
console.log(newString3)
// 2.删除首位的空格
console.log("    baj      abc   ".trim())
// 3.字符串切割split
var message = "abc-cba-nba-mba"
var items = message.split("-")
var newMessage = items.join("*")
console.log(newMessage)


目录
相关文章
|
1月前
|
索引 Python
模拟实现一个简单的string类
这个示例中,定义了一个简单的 `MyString`类,包含了常用的字符串操作,比如初始化、字符串拼接、长度获取、索引访问、大小写转换、相等判断等功能。请根据需求进行适当的修改和扩展。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
22 5
|
1月前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
23 2
|
6天前
|
C语言 C++
【C++】string类(常用接口)
【C++】string类(常用接口)
15 1
|
3天前
|
编译器 C++
【C++】继续学习 string类 吧
首先不得不说的是由于历史原因,string的接口多达130多个,简直冗杂… 所以学习过程中,我们只需要选取常用的,好用的来进行使用即可(有种垃圾堆里翻美食的感觉)
7 1
|
3天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
10 0
|
3天前
|
存储 安全 测试技术
【C++】string学习 — 手搓string类项目
C++ 的 string 类是 C++ 标准库中提供的一个用于处理字符串的类。它在 C++ 的历史中扮演了重要的角色,为字符串处理提供了更加方便、高效的方法。
13 0
【C++】string学习 — 手搓string类项目
|
6天前
|
C++
【C++】string类(介绍、常用接口)
【C++】string类(介绍、常用接口)
17 2
|
19天前
|
存储 网络协议 Java
Java String类
Java String类
11 0
|
22天前
|
存储 JavaScript 前端开发
JavaScript的数据类型主要分为两大类:基本数据类型和引用数据类型
【4月更文挑战第20天】JavaScript的数据类型主要分为两大类:基本数据类型和引用数据类型
21 6
|
23天前
|
存储 安全 C语言
【C++】string类
【C++】string类