字符串
声明字符串
// 字变量
var str = '字符串'
// 使用 new 关键字
var str = new String('aaa')
// 直接使用 String()
var str = String('bbbb')
字符串有长度和下标,时可读不可写的
console.log(str[0]); // 小标取出对应的字符
console.log(str.charAt(0)); // 小标取出对应的字符
console.log(str.charCodeAt(0)); // 104 根据下标取出来对应字符的asciii码表的码值
indexOf
语法:
字符串.indexOf('检索的字符', index)
// 第一个参数:检索的字符
// 第二个参数index: 检索字符的时候的起始位置 指的是下标值
可以返回某个指定的字符在字符串中的首次出现的位置
index是可选的整数参数,规定字符串中开始检索的位置,合法取值范围,字符串.lengrh - 1
如果省略了index这个参数,字符串从第一个字符开始检索
如果找不到检索的字符,返回-1
var str = 'abcdefgcdfer'
var n = str.indexOf('c') // 2
var n1 = str.indexOf('cde') // 2
var n2 = str.indexOf('cde1') // -1
var n3 = str.indexOf('c', 3) // -1
var str = '我小王就小王是小王我小王 不小王一样小王的小王'
// var str1 = '小王'
// var n = str.indexOf(str1, str1.length + 1)
// console.log(n);
/* var n = str.indexOf('小王'); // 1
while (n !== -1) {
console.log(n);
n = str.indexOf('小王', n + 2)
} */
fn(str, '小王')
function fn (str, val) {
var n = str.indexOf(val) // 1
while (n !== -1) {
console.log(n); // 1
n = str.indexOf(val, n + val.length)
}
}
查询字符串出现的次数
var str1 = 'qweooortooooyuoiasooodfoooghjooooosdoooofgoooohjooozxcvbooo'
var num = 0
// 计算字符串 str1中字母 o 出现的次数
var index = str1.indexOf('o')
while (index !== -1) {
console.log(index);
num++
index = str1.indexOf('o',index + 1)
}
console.log('o出现的次数:' + num);
lastIndexOf
语法:
字符串.lastIndexOf('检索的字符', index)
// 第一个参数:检索的字符
// 第二个参数index: 检索字符的时候的起始位置 指的是下标值
可以返回某一个指定的字符再字符串中的首次出现的位置
index是可选整数参数,规定字符串中开始检索的位置 合法取值范围 字符串.length - 1
如果略了index这个参数,字符串从第一个字符开始检索
如果找不到检索字符,返回-1
区别
indexOf是从前往后查找
lastIndexOf是从后往前查找
var str2 = '我小王就小王是小王我小王 不小王一样小王的小王'
var n2 = str2.lastIndexOf('小王')
var n3 = str2.lastIndexOf('小王', 9)
console.log(n2); // 21
console.log(n3); // 7
字符串去重
var str1 = '12331212331212332112331qweooortooooyuoiasooodfoooghjooooosdoooofgoooohjooozxcvbooo'
var str = ''; // 用来存储 从 st1中取出来的字符 是字母
var num = ''; // 用来存储 从 st1中取出来的字符 是数字
/* for (var i = 0; i < str1.length; i++) {
var v = str1[i] // v 始终只有一个字符
if (str.indexOf(v) === -1) {
str += v
}
}
console.log(str); */
for (var i = 0; i < str1.length; i++) {
var v = str1[i] // v 始终只有一个字符
if (v.charCodeAt(0) >= 48 && v.charCodeAt(0) <= 57 && num.indexOf(v) === -1) {
num += v
}
if (v.charCodeAt(0) >= 97 && v.charCodeAt(0) <= 122 && str.indexOf(v) === -1) {
str += v
}
}
console.log(num + str);
var str = "123123";
var num = "";
for (var j = 0; j < str.length; j++) {
for (var i = j + 1; i < str.length; i++) {
if (str[j] === str[i]) {