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])
}
字符串的方法
字符串方法详解:
// 字符串是以字符数组的形式保存的
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)
上一篇: 最短路之Floyd算法