标签:char dea ++ 返回值 code unicode 输入 执行 title
编写function strLength(s, bUnicode255For1) {};
strLength(‘hello world, 牛客‘, false)
17
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。
语法: stringObject.charCodeAt(index)
注释:字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
示例代码1
1 function strLength(s, bUnicode255For1) { 2 function strLength(s, bUnicode255For1) { 3 if(bUnicode255For1 === true){ 4 return s.length; 5 } 6 7 var length=0; 8 for(var i=0, len=s.length; i<len; i++){ 9 if(s.charCodeAt(i)>255) 10 length+=2; 11 else 12 length+=1; 13 } 14 return length; 15 } 16 //console.log(strLength(‘hello world, 牛客‘, false)); 17 }
遍历字符串中的每一个字符,如果字符Unicode 编码 > 255,则长度加2,否则加1,直至遍历完所有字符,最后返回字符串长度。
示例代码2
1 function strLength(s, bUnicode255For1) { 2 if(bUnicode255For1 === true){ 3 return s.length; 4 } 5 6 for(var i=0,m=0,len=s.length; i<len; i++){ 7 if(s.charCodeAt(i)>255) 8 m++; 9 } 10 return m*2+(s.length-m); 11 } 12 //console.log(strLength(‘hello world, 牛客‘, false));
遍历字符串中的字符,统计Unicode 编码 > 255字符的个数m,最后根据 m+s.length返回字符串长度。
参考链接
链接:https://www.nowcoder.com/questionTerminal/e436bbc408744b73b69a8925fac26efc
来源:牛客网
标签:char dea ++ 返回值 code unicode 输入 执行 title
原文地址:http://www.cnblogs.com/guorange/p/6604627.html