一种字符串截断方法及装置制造方法及图纸

技术编号:10465974 阅读:135 留言:0更新日期:2014-09-24 18:03
本发明专利技术公开了一种字符串截断方法,用于保证在字符串截断过程中不出现乱码,该方法包括:读取待截断字符串,获得当前字符所占字节长度;判断从待截断字符串中的起始字符到当前字符组成的子字符串是否满足预设截断条件;如果从待截断字符串中的起始字符到当前字符组成的子字符串满足预设截断条件,则根据当前字符所占字节长度,将子字符串减去当前字符作为截断子字符串进行显示。本发明专利技术还公开了一种字符串截断装置。

【技术实现步骤摘要】
一种字符串截断方法及装置
本专利技术涉及计算机
,具体涉及一种字符串截断方法及装置。
技术介绍
在一些应用程序的界面显示中,由于界面文本控件大小以及位置设计上的限制, 经常需要将各种不同长度的字符串进行截断后再在文本控件中进行显示。在现有技术中, 比较常见的做法是针对不同长度的字符串预设最大字节数限制,如果需要显示的字符串所 包含的字节数超出了预设最大字节数限制,则截断字符串,只显示其前最大字节数字节组 成的子字符串,并根据需要在其后附上省略号表示显示内容是被截断的子字符串。 但是,在有些字符编码环境下,中文、英文或其他符号字符所占用的字节数是不同 的。若按照最大字节数直接进行字符串截断,可能会出现字符被显示为乱码的情况。另外, 在进行字符串的显示的时候,同样字节数对应的中文、英文或其他符号所对应的字符数并 不一定相同,可能会出现中文字符显示长度合适而英文字符超出预先设置的控件的情况。
技术实现思路
有鉴于此,本专利技术的主要目的是提供一种字符串截断方法及装置,以解决现有技 术中对字符串截断可能出现乱码的问题。 为解决上述问题,本专利技术提供的技术方案如下: -种字符串截断方法,所述方法包括: 读取待截断字符串,获得当前字符所占字节长度; 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串是否满 足预设截断条件; 如果从所述待截断字符串中的起始字符到所述当前字符组成的子字符串满足预 设截断条件,则根据当前字符所占字节长度,将所述子字符串减去当前字符作为截断子字 符串进行显示。 相应的,所述方法还包括: 如果从所述待截断字符串中的起始字符到所述当前字符组成的子字符串不满足 预设截断条件,则将所述当前字符的下一字符作为当前字符,返回获得当前字符所占字节 长度,直到所述待截断字符串满足预设截断条件,则对所述待截断字符串进行显示。 相应的,所述方法还包括: 获得从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的实际 显示像素宽度。 相应的,所述判断从所述待截断字符串中的起始字符到所述当前字符组成的子字 符串是否满足预设截断条件,包括: 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的实际 显示像素宽度是否大于预设最大像素宽度,如果是,则满足预设截断条件,如果否,则不满 足预设截断条件。 相应的,所述判断从所述待截断字符串中的起始字符到所述当前字符组成的子字 符串是否满足预设截断条件,包括: 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的所占 字节长度总和是否大于预设最大字节长度,如果是,则满足预设截断条件,如果否,则不满 足预设截断条件。 相应的,所述获得当前字符所占字节长度,包括: 当所述待截断字符串采用等长编码时,根据所述待截断字符串的编码类型直接获 得每个字符所占字节长度。 相应的,所述获得当前字符所占字节长度,包括: 当所述待截断字符串采用变长编码时,根据当前字符的首字节获得当前字符所占 字节长度。 相应的,读取待截断字符串后,所述方法还包括: 判断所述待截断字符串是否满足预设截断条件,如果是,则继续执行获得当前字 符所占字节长度及后续步骤,如果否,则直接对所述待截断字符串进行显示。 相应的,判断所述待截断字符串是否满足预设截断条件,包括: 获得所述待截断字符串的实际显示像素宽度; 判断所述待截断字符串的实际显示像素宽度是否大于预设最大像素宽度。 相应的,判断所述待截断字符串是否满足预设截断条件,包括: 判断所述待截断字符串的所占字节长度总和是否大于预设最大字节长度。 一种字符串截断装置,所述装置包括: 第一获得单元,用于读取待截断字符串,获得当前字符所占字节长度; 第一判断单元,用于判断从所述待截断字符串中的起始字符到所述当前字符组成 的子字符串是否满足预设截断条件; 截断单元,用于如果从所述待截断字符串中的起始字符到所述当前字符组成的子 字符串满足预设截断条件,则根据当前字符所占字节长度,将所述子字符串减去当前字符 作为截断子字符串进行显示。 相应的,所述装置还包括: 显示单元,如果从所述待截断字符串中的起始字符到所述当前字符组成的子字符 串不满足预设截断条件,则将所述当前字符的下一字符作为当前字符,返回所述第一获得 单元获得当前字符所占字节长度,直到所述待截断字符串满足预设截断条件,则对所述待 截断字符串进行显示。 相应的,所述装置还包括: 第二获得单元,用于获得从所述待截断字符串中的起始字符到所述当前字符组成 的子字符串的实际显示像素宽度。 相应的,所述第一判断单元具体用于: 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的实际 显示像素宽度是否大于预设最大像素宽度,如果是,则满足预设截断条件,如果否,则不满 足预设截断条件。 相应的,所述第一判断单元具体用于: 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的所占 字节长度总和是否大于预设最大字节长度,如果是,则满足预设截断条件,如果否,则不满 足预设截断条件。 相应的,所述第一获得单元具体用于: 当所述待截断字符串采用等长编码时,根据所述待截断字符串的编码类型直接获 得每个字符所占字节长度。 相应的,所述第一获得单元具体用于: 当所述待截断字符串采用变长编码时,根据当前字符的首字节获得当前字符所占 字节长度。 相应的,所述装置还包括: 第二判断单元,用于判断所述待截断字符串是否满足预设截断条件,如果是,则所 述第一获得单元获得当前字符所占字节长度,如果否,则直接对所述待截断字符串进行显 /_J、1 〇 相应的,所述第二判断单元具体用于: 获得所述待截断字符串的实际显示像素宽度; 判断所述待截断字符串的实际显示像素宽度是否大于预设最大像素宽度,如果 是,则所述第一获得单元获得当前字符所占字节长度,如果否,则直接对所述待截断字符串 进行显示。 相应的,所述第二判断单元具体用于: 判断所述待截断字符串的所占字节长度总和是否大于预设最大字节长度,如果 是,则所述第一获得单元获得当前字符所占字节长度,如果否,则直接对所述待截断字符串 进行显示。 由此可见,本专利技术实施例具有如下有益效果: 本专利技术实施例可以动态获取待截断字符串中每个字符所占的字节长度,从而确保 在字符串截断过程中,当待截断字符串中的起始字符到当前字符组成的子字符串满足预设 截断条件时,将子字符串减去当前字符作为截断子字符串进行显示,从而保证字符完整而 不会显示乱码;另外,根据字符的实际像素宽度,设置最大像素宽度对字符串进行截断,可 以保证包含不同类型字符的字符串最终截断后的显示宽度符合预先设定的文本控件宽度 的要求。 【附图说明】 图1 (a)为现有技术中字符串截断后的一种显示结果; 图1 (b)为现有技术中子符串截断后的另一种显不结果; 图2为本专利技术字符串截断方法实施例一的流程图; 图3为本专利技术字符串截断方法实施例二的流程图; 图4本文档来自技高网...

【技术保护点】
一种字符串截断方法,其特征在于,所述方法包括:读取待截断字符串,获得当前字符所占字节长度;判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串是否满足预设截断条件;如果从所述待截断字符串中的起始字符到所述当前字符组成的子字符串满足预设截断条件,则根据当前字符所占字节长度,将所述子字符串减去当前字符作为截断子字符串进行显示。

【技术特征摘要】
1. 一种字符串截断方法,其特征在于,所述方法包括: 读取待截断字符串,获得当前字符所占字节长度; 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串是否满足预 设截断条件; 如果从所述待截断字符串中的起始字符到所述当前字符组成的子字符串满足预设截 断条件,则根据当前字符所占字节长度,将所述子字符串减去当前字符作为截断子字符串 进行显示。2. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 如果从所述待截断字符串中的起始字符到所述当前字符组成的子字符串不满足预设 截断条件,则将所述当前字符的下一字符作为当前字符,返回获得当前字符所占字节长度, 直到所述待截断字符串满足预设截断条件,则对所述待截断字符串进行显示。3. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 获得从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的实际显示 像素宽度。4. 根据权利要求3所述的方法,其特征在于,所述判断从所述待截断字符串中的起始 字符到所述当前字符组成的子字符串是否满足预设截断条件,包括: 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的实际显示 像素宽度是否大于预设最大像素宽度,如果是,则满足预设截断条件,如果否,则不满足预 设截断条件。5. 根据权利要求1所述的方法,其特征在于,所述判断从所述待截断字符串中的起始 字符到所述当前字符组成的子字符串是否满足预设截断条件,包括: 判断从所述待截断字符串中的起始字符到所述当前字符组成的子字符串的所占字节 长度总和是否大于预设最大字节长度,如果是,则满足预设截断条件,如果否,则不满足预 设截断条件。6. 根据权利要求1所述的方法,其特征在于,所述获得当前字符所占字节长度,包括: 当所述待截断字符串采用等长编码时,根据所述待截断字符串的编码类型直接获得每 个字符所占字节长度。7. 根据权利要求1所述的方法,其特征在于,所述获得当前字符所占字节长度,包括: 当所述待截断字符串采用变长编码时,根据当前字符的首字节获得当前字符所占字节 长度。8. 根据权利要求1所述的方法,其特征在于,读取待截断字符串后,所述方法还包括: 判断所述待截断字符串是否满足预设截断条件,如果是,则继续执行获得当前字符所 占字节长度及后续步骤,如果否,则直接对所述待截断字符串进行显示。9. 根据权利要求8所述的方法,其特征在于,判断所述待截断字符串是否满足预设截 断条件,包括: 获得所述待截断字符串的实际显示像素宽度; 判断所述待截断字符串的实际显示像素宽度是否大于预设最大像素宽度。10. 根据权利要求8所述的方法,其特征在于,判断所述待截断字符串是否满足预设截 断条件,包括: 判断所述待截断字符串的所占字节长度总和是否大于预设最大字节长度。11. 一种字符串截断装置,其特征在于,所述装置包括: 第一...

【专利技术属性】
技术研发人员:赵毅申家忠
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1