当前位置: 首页 > 编程笔记 >

Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享

倪振海
2023-03-14
本文向大家介绍Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享,包括了Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享的使用技巧和注意事项,需要的朋友参考一下

一、判断字符串中包含中文字符的方法

遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字,可以参照下面的代码。

二、计算字符串宽度函数


-- 计算字符串宽度

 

local str = "Jimmy: 你好,世界!"

local fontSize = 20

local lenInByte = #str

local width = 0

 

for i=1,lenInByte do

    local curByte = string.byte(str, i)

    local byteCount = 1;

    if curByte>0 and curByte<=127 then

        byteCount = 1

    elseif curByte>=192 and curByte<223 then

        byteCount = 2

    elseif curByte>=224 and curByte<239 then

        byteCount = 3

    elseif curByte>=240 and curByte<=247 then

        byteCount = 4

    end

     

    local char = string.sub(str, i, i+byteCount-1)

    i = i + byteCount -1

     

    if byteCount == 1 then

        width = width + fontSize * 0.5

    else

        width = width + fontSize

        print(char)

    end

end

 

print("总宽度: "..width)

 类似资料:
  • 本文向大家介绍JS判断字符串包含的方法,包括了JS判断字符串包含的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS判断字符串包含的方法。分享给大家供大家参考。具体如下: 1.  例子: 2. indexOf用法: JavaScript中indexOf函数方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串, 则返回 -1。如果 startindex

  • 本文向大家介绍Java判断字符串中是否包含中文方法,包括了Java判断字符串中是否包含中文方法的使用技巧和注意事项,需要的朋友参考一下 今天和同事在讨论一个问题,需要检查“输入的字符串中是否包含中文”,刚开始想到是用正则表达式,正则表达式中是以[u4e00-u9fa5]来全匹配字符是否是中文,但现在面临的问题是这个字符串中还可能包含英文字符、数字、特殊字符,一时也没想出能匹配该场景的正则表达式,后

  • 问题内容: 我有一个类似下面的字符串行: A:B:C:D:E:F:G:H:I:J:K:L:M 这意味着定界符(:)的计数为12。这行是有效的。 现在假设您有以下一行: A:B:C:D:E:F:G:H ::::: 这行也是有效的,因为它包含12个定界符。其中存在8个值,而4个值为空白。 现在,以下行应该无效: A:B:C:D:E:F:-无效-因为它仅包含6个值,但预期为12个。 这该怎么做 .. ?

  • 本文向大家介绍Mysql字符串字段判断是否包含某个字符串的2种方法,包括了Mysql字符串字段判断是否包含某个字符串的2种方法的使用技巧和注意事项,需要的朋友参考一下 假设有个表: 初始化表,并添加些记录。     Mysql 中有些字段是字符串类型的,如何查找其中包含某些字符的记录呢? 方法一: 这样bb@email.com的用户也查出来了,不符合预期。 方法二: 利用mysql 字符串函数 f

  • 本文向大家介绍JavaScript判断一个字符串是否包含指定子字符串的方法,包括了JavaScript判断一个字符串是否包含指定子字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript判断一个字符串是否包含指定子字符串的方法。分享给大家供大家参考。具体分析如下: 下面的JS代码,为String对象定义了一个contains方法用于判断字符串是否包含子字符串,非常有

  • 本文向大家介绍Android判断字符串中是否含字母、中文或数字,包括了Android判断字符串中是否含字母、中文或数字的使用技巧和注意事项,需要的朋友参考一下 Android 中文俗称安卓或安致,是一个以Linux为基础的开放源代码移动操作系统,主要用于智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。目前Google发