【技术实现步骤摘要】
字符串长度计算方法及装置、计算机存储介质
本申请涉及电子
,特别涉及一种字符串长度计算方法及装置、计算机存储介质。
技术介绍
绘文字(emoji)是一种在文本中使用的视觉情感符号,emoji使用统一码(Unicode)编码,在计算机设备中通常被渲染为图标。在即时通讯软件中,广泛地使用emoji的小黄脸表情包来丰富聊天的内容。即时通讯软件可以传输和展示含有emoji的字符串,达到文本和图标混合排版的效果。计算字符串的长度是一种用途广泛且使用频率较高的操作。例如:部分软件会规定用户的自定义昵称的长度不能超过10个字符,密码长度不能短于6个字符,以及发言长度不能超过140个字符等。这些应用场景都涉及字符串长度的计算。相关技术中,在计算含有emoji的字符串的长度时,通常将组成emoji的Unicode码点的数量作为该emoji对应的字符长度。但是,由于一个emoji可能由多个Unicode码点组成,则采用相关技术中的计算方法计算得到的该emoji的字符长度大于1。而该emoji在计算机设备中被渲染成一个图标, ...
【技术保护点】
1.一种字符串长度计算方法,其特征在于,所述方法包括:/n获取目标字符串对应的所有码点;/n对所述所有码点进行划分,得到一个或多个目标码点集合,每个所述目标码点集合中包括一个或多个码点,每个所述目标码点集合对应一个字符,所述字符为非绘文字或绘文字,每个所述非绘文字对应的目标码点集合中包括一个码点,每个所述绘文字对应的目标码点集合中包括一个或多个码点;/n将所述目标码点集合的数量确定为所述目标字符串的长度。/n
【技术特征摘要】 【专利技术属性】
1.一种字符串长度计算方法,其特征在于,所述方法包括:
获取目标字符串对应的所有码点;
对所述所有码点进行划分,得到一个或多个目标码点集合,每个所述目标码点集合中包括一个或多个码点,每个所述目标码点集合对应一个字符,所述字符为非绘文字或绘文字,每个所述非绘文字对应的目标码点集合中包括一个码点,每个所述绘文字对应的目标码点集合中包括一个或多个码点;
将所述目标码点集合的数量确定为所述目标字符串的长度。
2.根据权利要求1所述的方法,其特征在于,所述所有码点包括数字码点、表情码点、国家区域码点、修饰符码点和连接符码点中的一种或多种。
3.根据权利要求1或2所述的方法,其特征在于,所述所有码点的数量为n,n为正整数,所述对所述所有码点进行划分,得到一个或多个目标码点集合,包括:
获取初始码点集合,所述初始码点集合中包括所述所有码点中的第j个码点,j的初始值为1;
对所述初始码点集合执行码点集合划分流程,所述码点集合划分流程包括:
读取所述所有码点中的第j+1个码点对应的状态机状态;
根据所述第j个码点对应的状态机状态以及所述第j+1个码点对应的状态机状态,确定所述第j+1个码点是否属于所述初始码点集合;
当所述第j+1个码点属于所述初始码点集合时,将所述第j+1个码点添加到所述初始码点集合中,得到更新后的初始码点集合,
若j+1<n且所述第j+1个码点不为国家区域码点,使j=j+1,并对所述更新后的初始码点集合再次执行所述码点集合划分流程,
若j+1<n且所述第j+1个码点为国家区域码点,将所述更新后的初始码点集合作为一个目标码点集合,并生成一个新的码点集合,所述新的码点集合中包括所述第j+2个码点,使j=j+2,对所述新的初始码点集合执行所述码点集合划分流程,
若j+1=n,将所述更新后的初始码点集合作为一个目标码点集合;
当所述第j+1个码点不属于所述初始码点集合时,将所述初始码点集合作为一个目标码点集合,并生成一个新的初始码点集合,所述新的初始码点集合中包括所述第j+1个码点,
若j+1<n,使j=j+1,对所述新的初始码点集合执行所述码点集合划分流程,
若j+1=n,将所述新的初始码点集合作为一个目标码点集合。
4.根据权利要求3所述的方法,其特征在于,所述读取所述所有码点中的第j+1个码点对应的状态机状态,包括:
若所述第j个码点对应的状态机状态为默认状态,则:
当所述第j+1个码点为表情码点时,确定所述第j+1个码点对应的状态机状态为绘文字状态,
当所述第j+1个码点为数字码点时,确定所述第j+1个码点对应的状态机状态为准绘文字状态,
当所述第j+1个码点为国家区域码点时,确定所述第j+1个码点对应的状态机状态为国家区域状态,
当所述第j+1个码点不为表情码点、数字码点和国家区域码点中的任一时,确定所述第j+1个码点对应的状态机状态为默认状态;
若所述第j个码点对应的状态机状态为绘文字状态或修饰符状态,则:
当所述第j+1个码点为修饰符码点时,确定所述第j+1个码点对应的状态机状态为修饰符状态,
当所述第j+1个码点为连接符码点时,确定所述第j+1个码点对应的状态机状态为连接符状态,
当所述第j+1个码点不为修饰符码点和连接符码点中的任一时,以所述第j个码点对应的状态机状态为默认状态,读取所述第j+1个码点对应的状态机状态;
若所述第j个码点对应的状态机状态为准绘文字状态,则:
当所述第j+1个码点为修饰符码点时,确定所述第j+1个码点对应的状态机状态为修饰符状态,
当所述第j+1个码点不为修饰符码点时,以所述第j个码点对应的状态机状态为默认状态,读取所述第j+1个码点对应的状态机状态;
若所述第j个码点对应的状态机状态为国家区域状态,则:
当所述第j+1个码点为国家区域码点时,确定所述第j+1个码点对应的状态机状态为国家区域状态,
当所述第j+1个码点不为国家区域码点时,以所述第j个码点对应的状态机状态为默认状态,读取所述第j+1个码点对应的状态机状态;
技术研发人员:张宇,
申请(专利权)人:广州华多网络科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。