字符串
字符串
概述
字符串是一个数据结构(串),将同样的内容串在一起。
字符串在对应的js中属于一个值类型 —— 值类型是常量 不可改变
串也是一个存储结构 作为存储结构增删改查的方法 —— 字符串的增删改查 不能针对本身 而是返回一个新的字符串
字符串的声明
1.值类型赋值
var str = "hello world"
2.以new关键词声明 —— 引用了对应的值的地址
var str = new String("abc"); //引用了空值的地址
ES6新增 字符串模板
var a = 'jack'
var str = `hello string ${a}` //esc下面的这个键 解析${} 以变量来解析
console.log(str); //hello string jack
new String() 和 String()区别
- new String是构建一个String对象 (引用数据类型 有地址指向的)
- String 单纯的将对应的传进入的参数转为string类型(值类型)
字符串的属性
1.lengh属性 —— 返回字符串的长度(包括空格和换行)
var str = 'a b'
console.log(str.length)//3
2.通过下标获取对应的字符串
var str = 'abc'
console.log(str[0]) //a
字符串的方法 —— 返回新的字符串
通过下标找字符串 —— char 字符
charAt(下标)
charCodeAt(ASCII码)
var str = 'hhaf'
var char = str.charAt(2)//a
var code = str.charCodeAt(2)//97
console.log(char);
console.log(code);
通过字符串找下标 —— 找不到返回-1 找到了返回对应的下标值(第一次出现)
IndexOf —— 正序
lastIndexOf —— 倒序
var str = 'abc'
//IndexOf
console.log(str.indexOf('ab')) //返回的下标0
console.log(str.indexOf('d')) //找不到返回-1
//可以有俩个参数 第一个参数为 对应需要查询的字符串 第二个参数为 开始查找的下标
console.log(str.indexOf('b',2)) //从下标2开始找 找第一个出现b的位置 返回-1
var str = 'abbbccde'
console.log(str.indexOf('b',2)) //从下标2开始找 找第一个出现b的位置 2
//lastIndexOf
console.log(str.lastIndexOf('b')) //3
console.log(str.lastIndexOf('b',0)) //-1 从0的位置往前找
console.log(str.lastIndexOf('b',4)) //3
//也就是说默认的情况下 对应的后面的下标可以省略 str.length-1
search —— 和indexOf一样 支持正则表达式
var str = 'abc'
console.log(str.search(/ab/)) //0 /ab/正则表达式
console.log(str.search(/ab/,0)) //从0的位置开始找 匹配ab的内容
静态方法(通过构造方法名直接调用的叫做静态方法 他是对应的static修饰的)
fromCharCode 将对应的ascii码转为字符串
var str = String.fromCharCode(97) //返回的是一个字符串
console.log(str) //a
concat 将多个字符串转为连接成一个字符串返回
var str = 'hello'.concat('world')
console.log(str)//hello world
支持正则的方法
1.search 查找 —— 找到返回下标 没找到返回-1
var str = 'abca'
var index = str.search('a')//在str中找'a'
console.log(index)//0
2.replace 替换 —— 将找到的第一个字符串替换成一个新的字符串
var str = 'abca'
var str1 = str.replace('a','hello')//将a替换成hello
console.log(str1)//hellobca
3.split 分割 —— 返回数组
//分割 成为一个数组 split 数组变成字符串 join (默认以,)
var str = '1,2,3'
//默认不是以,作为分割 默认不分割 直接填入到数组
console.log(str.split()); //['1,2,3']
console.log(str.split(',')); //['1','2','3']
4.match 匹配
//match 返回一个数组 (匹配的内容)
var str = "abcacc"
//默认只找第一个匹配的 加入到数组
var arr = str.match('a')
console.log(arr);
截取的方法
substring(开始的下标,结束的下标)
substr(开始的下标,个数)
//截取的方法 substring substr
var str = "abcdef"
//substring[开始的下标,结束的下标) 不包含结束的下标
console.log(str.substring(1));//bcdef
console.log(str.substring(1,3));//截取不包含最后一个下标 (默认不填str.length)bc
console.log(str.substring(4, 1));//bcd 从小的数值往大的数值截取
// substr(开始的下标,截取的个数)
console.log(str.substr(1));//默认的情况是截取到最后 bcdef
console.log(str.substr(1,3));//从下标1开始截取 截取个数为3个 bcd
转大写 (toUpperCase)
var str = 'abcA'
console.log(str.toUpperCase())
转小写 (toLowercase)
var str = 'abcA'
console.log(str.toLowerCase())
去除空白(trim)
trim(); —— 去除字符串两边的空格,内部空格不会去除
Math类 —— 数学类 一起和数学计算相关的方法都在这个里面且这个方法都是静态方法
属性
PI 3.1415926
E 科学计算法
方法
random 随机数
round 四舍五入
floor 向下取整
ceil 向上取整
pow 取幂次方
sqrt 开平方
abs 取绝对值
max 最大值
min 最小值
....
经典字符串的题目(回文字符串 马拉车算法(贪心算法)dp动态规划dp数组 字符串搜索重复的字符串最长的hash比对)
ASCII



浙公网安备 33010602011771号