首页 > 其他分享 >字符串

字符串

时间:2022-10-23 16:00:47浏览次数:48  
标签:下标 log var str 字符串 console

字符串

字符串概述

字符串也是一个数据结构(串),将同样的内容串在一块。因为在对应的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类型(值类型)

字符串的属性

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

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

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

//实现一下对应的indexOf方法
var searchStr = "abcdefabcde"
function indexOf(str,index){
    if(!index){ //当前如果是undefined的值
        index = 0 //默认为0
    }
    //得到str的长度
    var len = str.length
    //这个5是表示当前的字符串的总长度
    for(var i=index;i<searchStr.length-len;i++){
        var s = ''
        for(var j=0;j<len;j++){
            s+=searchStr[i+j]
        }
        if(s==str){
            return i
        }
    }
    return -1
}
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=len-1;j>=0;j--){
            s+=searchStr[i-j]
        }
        if(s==str){
            return i
        }
    }
    return -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
支持正则的方法(4个)

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

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

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

总结

  • string是不能改变的(常量)
  • string的方法返回的都是一个新的字符串
  • string的length属性是只读的(不能赋值)读取对应的字符串的长度
  • 字符串可以通过下标进行访问(string[i])
  • 字符串方法 charAt charCodeAt
  • 搜索 indexOf lastIndexOf search
  • 支持正则的方法 search replace split match
  • 截取的方法 substring substr
  • 转大写和小写 toUpperCase和 toLowerCase
  • 静态方法 fromCharCode 根据ascii转为字符串

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

属性

PI 3.1415926

E 科学计算法

方法

random 随机数

round 四舍五入

floor 向下取整

ceil 向上取整

pow 取幂次方

sqrt 开平方

abs 取绝对值

max 最大值

min 最小值

....

标签:下标,log,var,str,字符串,console
From: https://www.cnblogs.com/ld1936805253/p/16818740.html

相关文章

  • 正则表达式匹配不出现指定字符串的字符串
    比如匹配不包含ab的字符串,使用^((?!ab)[\s\S])*$。参考:正则表达式匹配不包含某些字符串的技巧、HowtodeleteallcommentlinesinIDEA?......
  • 交替合并字符串
    题目给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回......
  • 1768. 交替合并字符串
    给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回合......
  • 去掉字符串后面的所有0
    去掉字符串后面所有的0Stringt=str.replaceAll("0+$","");成对去掉字符串后面所有的0Stringstr="9800101092200000";Stringt=str.replaceAll("0+$","");......
  • Es6,字符串新增的方法
    Es6,字符串新增的方法 String.fromCodePoint()ES5提供String.fromCharCode()方法,用于从Unicode码点返回对应字符,但是这个方法不能识别码点大于0xFFFF的字符。Stri......
  • 1768. 交替合并字符串
    1768.交替合并字符串给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后......
  • 力扣1768(java&python)-交替合并字符串(简单)
    题目:给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返......
  • 【Python】第3章-21 判断回文字符串
    输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结......
  • golang中的字符串
    0.1、索引https://waterflow.link/articles/16664498749741、字符串编码在go中rune是一个unicode编码点。我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字,UTF-......
  • golang中的字符串
    0.1、索引https://waterflow.link/articles/16664498749741、字符串编码在go中rune是一个unicode编码点。我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字,UTF......