string_string数据类型概括

news2024/9/28 5:23:06

目录

      • string数据类型
        • 创建字符串的三种方式
        • 检查字符串的方法
        • 常用的字符串方法
          • 字符串遍历
          • 切割字符串为数组
          • ​截取子串
          • 判断某个字符串是否出现在当前字符串中
          • 文本匹配-match、(es6)matchAll
          • 文本替换-replace、(es6)replaceAll
          • (es6)获取某个位置的字符串
        • 有关ASCII码的方法
          • 获取某字符的ASCII编码
          • 比较字符串大小
            • 本质
            • localeCompare方法

string数据类型

  • 数据:使用单引号或双引号引起来的0个或多个字符即为字符串

  • 注意问题:

    • 单引号内不能再包含单引号,但可以包含双引号

    • 双引号内不能再包含双引号,但可以包含单引号

    • 原因:在遇到单/双引号时,默认会向后寻找 另一个单/双引号,若是找到默认此字符串结束;

    • eg:

      let str='1233'1'
      // 此时就会报错,原因是因为str字符串到3就结束了
      

创建字符串的三种方式

[1]直接赋值

let a1 = 'aaa' // 数据类型:stirng

[2]String()方法创建字符串(强制类型转化-将不同的数据类型转化为字符串)

let a2 = String('aaa') // 数据类型:string

[3]new String构造函数创建字符串(基本包装对象)

let a3 = new String('aaa') 
console.log('数据类型:', typeof a3) // 数据类型:object

检查字符串的方法

通过new String() 获取的对象是引用类型,打印可以看到原型上的所有方法;
在这里插入图片描述
当记不住字符串的方法时就可以 在控制台打印 new String() 显示字符串的所有方法

常用的字符串方法

字符串遍历

for...of是es6新增的遍历方法,可以用来遍历字符串

let str = 'abcdefgh'
for(let i in str){
  // i  为索引
  console.log(str[i]) // 单个字符串 a b c d e f g h
}
for(let key of str){
  // key 为单个zi fu
  console.log(key) // 单个字符串 a b c d e f g h
}
切割字符串为数组
  • 语法:字符串.split(分隔符)

  • 举例说明

     let str = 'ababdbgbdba'
     let arr1 = str.split('')
     console.log('arr1',arr1) // ['a', 'b', 'a', 'b', 'd', 'b', 'g', 'b', 'd', 'b', 'a']
     let arr2 = str.split('b')
     console.log('arr2',arr2) //  ["a", "a", "d", "g", "d", "a"]
    
​截取子串
  • 语法:字符串.substr(下标,切割个数)

  • 举例说明:

    let str = 'abcdefghigk'
    let sonStr = str.substr(1, 5)
    console.log(sonStr) //bcdef
    
判断某个字符串是否出现在当前字符串中

判断某个字符串是否出现在当前字符串中方法汇总

文本匹配-match、(es6)matchAll

match方法

文本替换-replace、(es6)replaceAll

replace方法

(es6)获取某个位置的字符串


at()方法是es6新增的查看字符串指定位置字符的方法;

at()方法接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置)。

如果参数位置超出了字符串范围,at()返回undefined。

const str = 'hello';
console.log(str.at(1)) // "e"
console.log(str.at(-1)) // "o"
console.log(str.at(22)) // undefined

有关ASCII码的方法

获取某字符的ASCII编码
  • 语法:str.charCodeAt(index) 其中index为字符的索引
  • 示例
    const str1 = 'abcde';
    const str2 = 'ABCDE'
    console.log(str1.charCodeAt(0)) // 97
    console.log(str2.charCodeAt(0)) // 65
    
比较字符串大小
本质

若是操作数中存在number数据类型,则会触发隐士转化 -> 将其他数据类型转化为 number类型再进行比较。

举例说明

console.log('1111' > 2) // true
  • 由于2为number数据类型,则会将‘1111’转化为number类型1111再进行比较

字符串比较大小 本质上是将字符串转化为ASCII码后再进行大小比较。

在比较时 由第一个字符进行比较,若是

  • 不相等 -> 得出大小 (此时结束,不会再比较下一个字符)
  • 相等 -> 比较下一个字符,以此类推

举例说明

console.log('1111'> '2') // false
  • ‘1111’ 的第一个字符为1 -> 转化为ASCII编码后是49,‘2’的第一个字符为2 -> 转化为ASCII编码后是50
  • 以上代码相当于比较 49 > 50 // false
localeCompare方法

比较字符串大小可以直接比较也可以使用 localeCompare 方法进行比较
语法
localeCompare 方法是 String原型链上的方法

str.localeCompare(compareString, [locales], [options])
  • locales:表示缩写语言代码(BCP 47 language tag)的字符串,或由此类字符串组成的数组 -> 省略默认当地
  • options:一个调整输出格式的对象 -> 省略默认以下
    • 大于比较字符串 -> 返回1(number)
    • 等于比较字符串 -> 返回0(number)
    • 小于比较字符串 -> 返回-1(number)

该方法一般配合字符串排序使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Good Bye 2022: 2023 is NEAR C Koxia and Number Theory

Problem - C - Codeforces 题意: 给定一个数列a,问你是否存在一个数 x 使得所有数加上x之后两两互质 思路: 一、 我们知道一个结论,一些数两两之间互质,就说明所有数之间的质因子都不重合 如果要我们去判断一堆数…

回顾与展望Zebec举办的“Web3.0 TechHive Summit 2022 大会”

随着流支付生态 Zebec 不断的实现商业进展,我们看到,其生态从Solana陆续的迁移到以BNB Chain为代表的EVM链上,并推出了以ZK-Rollup为主要技术手段的公链Zebec Chain,以在未来服务且满足于Web2、Web3世界的发展需求。 Zebec正在成…

若依框架:前端项目结构与初始页面渲染流程

目录 main.js入口文件 前端页面初始化 package.json配置文件 vue-cli:.env模式和环境变量配置 vue-cli三大核心构件 CLI 服务与npm scripts vue-cli-service命令与.env模式配置文件 .env模式和环境变量配置 vue.config.js:项目启动-自动打开默认…

pycharm如何设置python文件模板

pycharm如何设置python文件模板设置文件模板预定义变量设置自定义模板变量设置文件模板 打开设置界面 进入编辑器->文件和代码模板 此处我只写了文件头注释模板,也可以加一些默认代码,比如: python if __name__ "__main__":…

NC65在单据添加按钮跳转到固定单据,且进行数据初始化

实现功能 下面两个是按钮 下面红框里面的内容是上面单据带过来的 上面就是本地代码实现的功能 具体实现代码 提前约定 为了方便称呼,这里把第一张图称为上游单据,第二张图为下游单据 所有代码AggVo都要替换成你自己的 配置文件 上游单据拓展配置文…

2023年天津美术学院专升本专业课线上考试安排准备及设备操作说明

天津美术学院2023年高职升本招生专业考试考生须知及操作说明一、考试时间安排二、考前准备 (一)纸张及其他材料(二)考试设备及网络 1.考生须提前准备好至少两部智能手机,为确保网络考试顺利进行,建议考生使用最近3年上市的主流品牌手机(如iPh…

太强了!这么设计中间件完美解决了百万并发的问题!

V-xin:ruyuan0330 获得600页原创精品文章汇总PDF 目录 一、大部分人对Java并发仍停留在理论阶段二、中间件系统的内核机制:双缓冲机制三、百万并发的技术挑战四、内存数据写入的锁机制以及串行化问题五、片机制 分段加锁机制 六、缓冲区写满时的双缓冲…

c++ - 第19节 - c++11

1.C11简介 c11简介:在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯…

Pycharm打开Project(工程)时停留在preparing workspace时间过长,导致打开很慢的解决方法...

Pycharm打开Project(工程)时停留在preparing workspace时间过长,导致打开很慢的解决方法… 昊虹君用Pycharm进行Python的开发,一直用得好好的,也没作过什么异常操作,但是从上星期开始,打开Project(工程)时停留在preparing worksp…

【王道操作系统】2.1.1 进程的定义、特征、组成、组织

进程的定义、特征、组成、组织 文章目录进程的定义、特征、组成、组织1.进程的定义2.进程的特征3.进程的组成4.进程的组织1.进程的定义 程序的概念: 进程的概念: 进程和程序的区别和联系: 区别: 进程是动态的,程序是静…

Linux系统下crond任务调度指令的常见用法

Linux系统下crond任务调度指令的常见用法 任务调度 任务调度是指系统在某个时间执行的特定的命令或程序。任务调度分类:1)系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等;2)个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。 基本语…

【攻防世界】网鼎杯2018 Web fakebook

学web总是能让我学到新的知识,很开心,很有趣,很好玩 打开题目 一个登录按钮,一个注册按钮,其余没有什么发现,对于web来说,常规先测试一下robots.txt文件 果然又发现,有一个bak文件…

opencv-python常用函数解析及参数介绍(二)——图像填充与图像融合

1.图像填充 函数及参数介绍 在opencv中使用cv2.copyMakeBorder可以进行图像的边界填充,需要的参数为(img, top_size, bottom_size, left_size, right_size, borderType),即(图片,上侧填充值,下侧填充值&a…

【数据结构与算法】KMP算法

文章目录前言一 .KMP的来历二.KMP解决的问题1.引入2.定义的引入1.字符串前缀2.字符串后缀3.最长相等前后缀3.核心思想三.next/prefix1.next的含义定义规律2.next的求取1.准备工作2.思路和图解4.应用前言 在C语言的strcmp的实现过程中,所涉及的算法较为简单&#xff…

Golang - 字符串操作汇总

Golang 字符串操作汇总1 string初始化2 遍历string3 byte & Rune3.1 初始化3.2 byte和rune区别1 string初始化 func newString() {//1. 字符串初始化// 方式一:使用简写声明,带有字符串的变量,支持特殊字符str : "one hello \n world"fmt…

三个月后,快手To B怎么样了?

未来,如何独立作战和走出快手的TOC“客户资源圈”,或将成为快手TOB新的十字路口。 作者|斗斗 编辑|皮爷 出品|产业家 人口红利终结,流量红利终结,超常规的高速增长终结。TOC模式的路越来越难走了。 快手与抖音作为短视频…

光耦特性以及计算

光耦特性 光耦器件电路图 这是我们常用的。光耦器件以及它的连接方式。 左侧R1是我们主要考虑的。 电流最小值是要让LED能够保持发光状态,最大值的话。1.不能让LED烧坏了。2. LED的负极端是单片机的。 这里主要是看引脚灌入电流的最大值。 电气规格 我们看看说…

手机数据包抓包详解

今天继续给大家介绍渗透测试相关知识,本文主要内容是手机数据包抓包详解。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设…

并发编程——6.共享模型之不可变

目录6.共享模型之不可变6.1.日期转换的问题6.1.1.问题提出6.1.2.解决思路——同步锁6.1.3.解决思路——不可变6.2.不可变设计6.3.享元模式6.3.1.简介6.3.2.体现6.3.3.DIY6.4.final 原理6.5.无状态本文笔记整理来自黑马视频https://www.bilibili.com/video/BV16J411h7Rd/?p197&…

Unity脚本(二)

视频教程:https://www.bilibili.com/video/BV12s411g7gU/?share_sourcecopy_web Transform 对象的位置、旋转和缩放 场景中的每个对象都有一个Transform,用于存储和操作对象的位置、旋转和缩放。 每个Transform都可以有一个父级,能够分…