欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Javascript从零基础到精通——字符串

程序员文章站 2024-03-16 13:03:34
...

字符串String

字符串的两种创建方式(常量和构造函数)

	// 1. 常量
	// 创建字符串的时候要使用引号,单引号双引号都可以
	// 但是如果有多层引号必须切换使用
	// 如果有多层,可以使用转义
	var str = 'hello "\'str\'ing"'
	// 2. 构造函数
	var str1 = new String('hello string')

字符串比较

	// 字符串比较是按照ASCII编码值的大小比较的
	console.log('a' > 'b') // false
    console.log('a' < 'b') // true

    // 字符串比较大小是按位数比较,第一位比完再比第二位
    console.log('aab' < 'abb') // true
    console.log('abbb' < 'ac') // true

    // 单个字符都有自己的ASCII编码值,但是ASCII能表示的范围0~255总共只有256个编码
    // unicode是另外一种编码方式,它可以表示更多的字符,中文 \u4e00 ~ \u9fa5
    // 中文在unicode里的编码顺序和汉语字典的顺序一致,汉字越靠后就越大

字符串的遍历

	var str = 'hello string'
    // 字符串也有索引和length
    console.log(str.length) // 12 空格也是有意义的字符
    console.log(str[0]) // h

    // 如果要遍历字符串就用普通for循环
    for (var i = 0; i < str.length; i++) {
      console.log(str[i])
    }

字符串的方法

Javascript从零基础到精通——字符串
字符串方法详解:

        // 字符串是以字符数组的形式保存的
        var str = "Hello";
        console.log(str.length);
        console.log(str[3]);
		/*
            charAt()
                返回字符串中指定位置的字符
        */
        console.log(str.charAt(0));
        /*
            charCodeAt()
                获取指定位置字符的字符编码(Unicode编码)
        */
        console.log(str.charCodeAt(1));
        /*
            String.fromCharCode()
                根据字符编码去获取字符
        */
        console.log(String.fromCharCode(101));
        /*
            concat()
                可以用来连接两个或多个字符串
                作用和+一样
        */
        console.log(str.concat("你好","再见"));
        /*
            indexOf()
                检索一个字符串中是否含有指定内容
                    有,返回第一个
                    没,返回-1
            lastIndexOf()
                和indexOf()一样
                indexOf()从前往后找
                lastIndexOf()从后往前找
        */
        console.log(str.indexOf("o",0));
        /*
            slice()
                从字符串中截取指定的内容
                不会影响原字符串,而是将截取到内容返回
                参数:
                    第一个:开始位置的索引(包括开始位置)
                    第二个:结束位置的索引(不包括结束位置)
                        如果省略第二个参数,则会截取到后边所有的
                        传递一个负数,从后边计算
        */
        str = "adsagasfasdag";
        console.log(str.slice(1,4));
        /*
            substring()
                可以用来截取一个字符串,和slice()类似
                不同的是这个方法不能接收负值作为参数
                    传递负数,默认使用0
                    自动调整第二个参数大于第一个参数
        */
        console.log(str.substring(1,4))
        /*
            substr()
                截取字符串
                参数:
                    第一个:截取开始位置的索引
                    第二个:截取的长度
        */
        console.log(str.substr(3,2));
        /*
            split()
                将一个字符串拆分为一个数组
                参数:
                    需要一个字符串作为参数,将会根据该字符串去拆分数组
        */
        str = "abc,bcd,efg,hij";
        console.log(str.split(","));
        /*
            toUpperCase()
                将一个字符串转换为大写并返回
        */
        str = "abcdefg";
        console.log(str.toUpperCase());
        /*
            toLowerCase()
                将一个字符串转换为小写并返回
        */
        str = "ABCDEFG";
        console.log(str.toLowerCase());

字符串练习题

1. 统计字符出现个数

    var str = 'sddjdskdjsks'
    var obj = {}
    for (var i = 0; i < str.length; i++) {
      // 把str[i]作为对象的属性名去判断
      if (obj[str[i]]) {
        // 值已经存在了,就在原数量基础上+1
        obj[str[i]]++
      } else {
        // 不存在,第一次遍历到,赋值为1
        obj[str[i]] = 1
      }
    }
    console.log(obj)