其他分享
首页 > 其他分享> > 牛客前端篇———FED8、获取字符串的长度

牛客前端篇———FED8、获取字符串的长度

作者:互联网

题目描述

如果第二个参数 bUnicode255For1 === true,则所有字符长度为 1
否则如果字符 Unicode 编码 > 255 则长度为 2

示例1

输入

'hello world, 牛客', false

输出

17

代码

JavaScript charCodeAt() 方法

定义和用法:charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。字符串中第一个字符的位置为 0, 第二个字符位置为 1,以此类推。

实例1:

返回字符串第一个字符的 Unicode 编码:

var str = "HELLO WORLD";
var n = str.charCodeAt(0);

n 输出结果:

72

实例2:

返回字符串中最后一个字符的 Unicode 编码:

var str = "HELLO WORLD";
var n = str.charCodeAt(str.length-1);

n 输出结果:

68

 答案

function strLength(s, bUnicode255For1) {
    if( bUnicode255For1 ){ //当第二个参数为false时因为所有字符长度都为1,直接用length算就好了
        return s.length;
    }else{ //反之,先用length算长度,然后遍历,当又字符的Unicode大于255就length+1即可
        var len = s.length;
        for( var i=0; i<s.length; i++ ){
            if( s.charCodeAt(i) > 255 ){
                len++;
            }
        }
        return len;
    }
}

运行环境:JavaScript (V8 6.0.0)

运行时间:987ms

占用内存:78188KB

标签:字符,Unicode,charCodeAt,var,牛客,length,str,字符串,FED8
来源: https://blog.csdn.net/weixin_43613849/article/details/115482884