DEV Community

Cover image for 鸿蒙开发:ArkTs字符串string
程序员一鸣
程序员一鸣

Posted on

鸿蒙开发:ArkTs字符串string

前言

本文代码案例基于Api13。

字符串在实际的开发中还是非常重要的,牵扯到的用法也是比较多的,比如字符串中的查找,替换,切割等等。

字符串(String)是由零个或多个字符组成的有限序列,在计算机编程和数据处理中广泛使用。字符串可以包含字母、数字、标点符号、空格,甚至可以是空字符串(即不包含任何字符的字符串)。字符串是文本信息的基本表示形式,在几乎所有编程语言中都有专门的字符串数据类型或类来处理它们。

表示方法

在实际的开发中,大家可以使用单引号(')或双引号(")来表示,这两种方式都是可以的,如下代码所示:

let string = "我是双引号字符串"
let string2 = '我是单引号字符串'
Enter fullscreen mode Exit fullscreen mode

如果是成员变量声明,关键字前缀可以不用:

string = "我是双引号字符串"
string2 = '我是单引号字符串'
Enter fullscreen mode Exit fullscreen mode

主要方法

方法/属性 概述
length 返回字符串的长度
indexOf() 返回某个指定的字符串值在字符串中首次出现的位置。
lastIndexOf() 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
charAt() 返回在指定位置的字符。
split() 把字符串分割为子字符串数组。
substring() 提取字符串中两个指定的索引号之间的字符。
replace() 替换与正则表达式匹配的子串
search() 检索与正则表达式相匹配的值

各方法介绍

1、获取长度

通过内置的length属性,返回字符串的长度,具体使用如下:

let string = "我是双引号字符串"
let length = string.length
console.log("字符串长度:" + length)

//打印内容为:字符串长度:8
Enter fullscreen mode Exit fullscreen mode

2、获取位置

通过indexOf(),返回某个指定的字符串值在字符串中首次出现的位置,一定要记住是首次,也就是第一次出现的位置。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let index = string.indexOf("一") //获取“一”第一次出现的位置
console.log("获取文字一第一次位置:" + index)

//打印内容为:获取文字一第一次位置:3
Enter fullscreen mode Exit fullscreen mode

3、是否存在某个字符

给定一个字符串,判断这个字符串中是否存在(包含)某一个字符或者字符串,也是通过indexOf方法来判断,存在不为-1,不存在则为-1。

 let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
if (string.indexOf("鸿蒙") != -1) {
    console.log("===存在")
} else {
    console.log("===不存在")
}
Enter fullscreen mode Exit fullscreen mode

4、从后获取位置

indexOf()方法,是从前进行搜索,lastIndexOf(),则是从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let index = string.lastIndexOf("一") //获取“一”的最后一次位置
console.log("获取文字一最后一次位置:" + index)

//打印内容为:获取文字一最后一次位置:13
Enter fullscreen mode Exit fullscreen mode

5、返回指定位置字符

通过charAt(),返回在指定位置的字符。

 let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
 let char = string.charAt(3) //获取指定索引下的文字内容
 console.log("获取文字内容:" + char)

//打印内容为:获取文字内容:一
Enter fullscreen mode Exit fullscreen mode

6、字符串分割

通过split(),把字符串分割为子字符串数组。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let sArray = string.split("一")
console.log("分割后数组:", sArray)

//打印内容为:分割后数组: 程序员,鸣是鸿蒙开发者中的,名佼佼者
Enter fullscreen mode Exit fullscreen mode

除了上面的常见分割之外,也可以通过第二个参数控制返回的数组长度。

let string = "程序员一鸣 是 鸿蒙开发者 中的 一名 佼佼者"
let sArray = string.split(" ", 3) //限制返回三个
console.log("分割后数组:", sArray)

//打印内容为:分割后数组: 程序员一鸣,是,鸿蒙开发者
Enter fullscreen mode Exit fullscreen mode

7、提取字符

通过substring(),提取字符串中两个指定的索引号之间的字符。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let eString = string.substring(0, 6)
console.log("提取之后的字符:", eString)

//打印内容为:提取之后的字符: 程序员一鸣是
Enter fullscreen mode Exit fullscreen mode

如果只有一个参数,那么就是从设置的索引起,到字符串结束位置。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let eString = string.substring(3)
console.log("提取之后的字符:", eString)

//打印内容为:提取之后的字符: 一鸣是鸿蒙开发者中的一名佼佼者
Enter fullscreen mode Exit fullscreen mode

8、替换字符

通过replace(),替换与正则表达式匹配的子串。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let rString = string.replace("程序员一鸣","AbnerMing")
console.log("替换之后的字符:", rString)

//打印内容为:替换之后的字符: AbnerMing是鸿蒙开发者中的一名佼佼者
Enter fullscreen mode Exit fullscreen mode

当然了, 你也可以通过正则来进行替换,比如把一段字符串中的所有数字替换为“好”字。

let re = /\d+/g;
let string = "程序员一鸣6是7鸿蒙开发者8中的一名9佼佼者10"
let rString = string.replace(re,"好")
console.log("替换之后的字符:", rString)

//打印内容为:替换之后的字符: 程序员一鸣好是好鸿蒙开发者好中的一名好佼佼者好
Enter fullscreen mode Exit fullscreen mode

9、检索字符

判断一个字符串是否存在,可以使用indexOf方法进行判断,在上面的第三个方法介绍中已经阐述,除了indexOf方法之外,系统也提供了search()方法用于检索,不为-1则存在,为-1则不存在。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let isSearch = string.search("一鸣") != -1
console.log("检索字符是否存在:", isSearch)

//打印内容为:检索字符是否存在: true
Enter fullscreen mode Exit fullscreen mode

10、小写转大写

通过toUpperCase()方法,把字符串转换为小写。

let string = "abnerming"
let upperCase = string.toUpperCase()
console.log("转换后字符:", upperCase)

//打印内容为:转换后字符: ABNERMING
Enter fullscreen mode Exit fullscreen mode

11、大写转小写

通过toLowerCase()方法,把字符串转换为小写。

let string = "ABNERMING"
let lowerCase = string.toLowerCase()
console.log("转换后字符:", lowerCase)

//打印内容为:转换后字符: abnerming
Enter fullscreen mode Exit fullscreen mode

12、返回指定位置Unicode 编码

通过charCodeAt(),返回在指定的位置的字符的 Unicode 编码。

let string = "程序员一鸣是鸿蒙开发者中的一名佼佼者"
let char = string.charCodeAt(3) //获取指定索引下的Unicode 编码
 console.log("获取Unicode编码内容:" + char)

//打印内容为:获取Unicode编码内容:19968
Enter fullscreen mode Exit fullscreen mode

小结

字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong · web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video 🌶️🔥

Top comments (0)

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay