字符串

字符串

字符串概述

字符串也是一个数据结构(串),将同样的内容串在一起。因为在对应的js里面字符串属于一个值类型(值类型是常量 常量是不能变的)

字符串是不能改变的。结合上一章提到的数据结构里面串也是一个存储结构,作为存储结构增删改查的方法(字符串的增删改查 不能针对于本身 而是返回一个新的字符串)

字符串的声明

1、值类型赋值

var str="hello world"

2、以new关键词说明(引用了对应的值地址)

var str=newString("abc");//引用了一个空值的地址

ES6新增 字符串模板

var a='jack'

var str=`hello string ${a}`//键盘上面的Esc下面的这个键 解析${} 以变量来解析

console.log(str);//hello string jack

new String() 和 Stirng()区别

new String是构建一个String对象(引用数据类型 有地址指向的)

String单纯的将对应的传进入的参数转为string类型(值类型)

字符串的属性

length属性 返回字符串的长度(包含空格及换行)

var str='a b'

console.log(str.length) //长度为3 包含空格

通过下标来获取对应的字符串

var str='abc'

console.log(str[0]) //a

字符串的方法(返回新的字符串)

通过下标找字符串(char字符)

charAt(下标)

var str='abc'

str.charAt(0)//a

charCodeAt(ACSII码)

var str='abc'

str.charCodeAt(0)//97

通过字符串找下标(找不到返回-1 找得到返回对应的下标值 number)

indexOf

var str='abc'

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的位置当作第一个 返回2

lastindexOf

console.log(str.lastIndexOf('b'));//3

console.log(str.lastIndexOf('b',0));//-1 从0的位置往前找

console.log(str.lastIndexOf('b',4));//3  从4的位置往前找

//也就是说 默认的情况下 对应的后面的下标可以省略 str.length-1

自定义函数实现对应的indexOf方法和lastIndexOf方法

        //实现对应的indexOf方法

        var searchStr = "abcdefabcd"

        function indexOf(str, index) {

            if (!index) { //当前如果是undefined的值

                index = 0 //默认为0

            }

            // 得到str的长度

            var len = str.length

            //这个5是表示当前的字符串的总长度

            for (var i = index; i < searchStr.length; i++) {

                var s = ''

                for (var j = 0; j < len; j++) {

                    s += searchStr[i + j]

                }

                if (s == str) {

                    return i

                }

            }

            return -1

        }

        console.log(indexOf('bc', 4));

        //实现对应的lastindexOf方法

        var searchStr = "abcdefabcde"

        function lastIndexOf(str, index) {

            if (!index && index != 0) { //当前如果是undefined的值 或者不为0

                index = searchStr.length - 1 //默认为最后一个

            }

            // 得到str的长度

            var len = str.length

            //这个5是表示当前的字符串的总长度

            for (var i = index; i > len; i--) {

                var s = ''

                for (var j = 0; j < len; j++) {

                    s += searchStr[i - j]

                }

                if (s == str) {

                    return i

                }

            }

            return -1

        }

        console.log(lastIndexOf('e', 9));

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)//helloworld

支持正则的方法(4个)

search查找(找到返回下标 没找到返回-1)

replace替换(将找到的第一个字符串替换成一个新的字符串)

var str='abc'

str.replace('a','hello')//将a替换成hello

console.log(str1)

split分割(返回数组)

//分割 成为一个数组 split 数组变成字符串 join(默认以,)

var str='1,2,3'

//默认不是以,作为分割 默认不分割 直接填入到数组

console.log(str.split());//['1,2,3']

console.log(str.split(','));//['1', '2', '3']

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));//bc//截取不包含最后一个下标(默认不填str.length)

//substr(开始的下标,截取的下标)

console.log(str.substr(1));//默认的情况是截取到最后 bcdef

console.log(str.substr(1,3));//从下标1开始截取 截取个数为3个 bcd

转大写(toUpperCase)

var str='abcd'

console.log(str.toUpperCase());

转小写(toLowerCase)

var str='ABCD'

console.log(str.toLowerCase());


Match类 (数学类 一切和数学计算相关的方法都在这个里面 且这个方法都是静态方法)

属性

PI 3.1415926

E 科学计数法

方法

random随机数

round四舍五入

floor向下取整

celi向上取整

pow取幂次方

sqrt开平方

abs取绝对值

max最大值

min最小值

...

经典字符串的题目(回文字符串 马拉车算法(贪心算法)dp动态规划 dp数组 字符串搜索重复的字符串最长的 hash比对)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。