/**
* @param {string} str
* @return {string}
*/
var toLowerCase = function(str) {
var result = '';
for(var i =0; i< str.length; i++){
var code = str[i].charCodeAt();
if(65 <= code && code <= 90 ){
code +=32;
result += String.fromCharCode(code);
}
else{result += str[i]; }
}
return result;
};
console.log(toLowerCase('Hello'));
这里是用了一个新的result='';
遍历字符串,如果是大写字母(用函数charCodeAt()获取ascii码),则+32利用String.fromCharCode(xxx)变成小写,加入到result中,不是的话就正常加入
这里着重学习2个函数,str.charCodeAt() 和 String.fromCharCode(xxx), 并且学会使用ASCII码去解决相关的问题。
注意:
字符串不可改变,不可通过for遍历去改变
split()用于字符串转换成数组,2个参数,(分隔符,最大元素数)
splice()用于数组,改变原数组,slice()即可用于数组,也可用于字符串
引申出来一个比较大的话题: 关于JS字符串的相关方法
1.和数组关系密切 数组和字符串可以相互转换
字符串的话,用split()方法,数组的话用join()方法
2.字符串转换
xxx.toString() String(xxx) ''+xxx 三种方法都可以
3.字符串分割成数组 split()
4.获取字符串长度 str.length 有一个技巧就是可以通过str[str.length - 1]获取到最后一项的元素
5.可以用indexOf()查询字符串 查到返回下标,查不到返回-1,可以用这个判断是否存在
lastIndexOf()可以后面开始查询,返回第一个查到的下标
6.字符串替换 replace('a','b') a替换成b 可以在第一个字符串参数使用正则表达式,/a/g 全局替换掉a
7. str[0].charCodeAt() 返回ascii码 String.fromCharCode(90) 返回'z';
8.字符串拼接
可以直接相加
也可以使用 str1.concat(str2 )
9.获取子字符串
第一种可以用 slice(0,5) 左闭右开
第二种subString(0,5) 依旧是左闭右开
第三种 subStr(0,5) 第二个参数是字符的数量 这里代表拿5个字符
10.大小写转换
str.toUpperCase()
str.toLower()
11.字符串匹配
match()方法 接受一个正则表达式的变量,返回数组,有g返回匹配字符串的数组 ,没有g返回匹配的一个字符串和一个捕获组(index和input) 找不到返回null
12.字符串比较
可以用大于,小于,等于号比较
可以用localeCompare()比较