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)


目录
相关文章
|
20天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
30 2
|
2月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
65 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
2月前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
45 2
|
2月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
25 1
|
2月前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
60 4
|
1月前
|
JavaScript 前端开发 开发者
|
2月前
|
存储 安全 Java
【一步一步了解Java系列】:认识String类
【一步一步了解Java系列】:认识String类
28 2
|
2月前
|
C语言 C++
C++番外篇——string类的实现
C++番外篇——string类的实现
21 0
|
2月前
|
C++ 容器
C++入门7——string类的使用-2
C++入门7——string类的使用-2
22 0
|
2月前
|
C语言 C++ 容器
C++入门7——string类的使用-1
C++入门7——string类的使用-1
23 0