lua多种方式计算字符长度

刚遇到一个坑,lua里  string.len() 中文长度算3(不排除某些汉字可能占4的可能)不过计算长度最好还是用 #,少用string.len()

搞了两小时,终于让我找到一个很好的解决办法。

local _,count = string.gsub(text, "[^\128-\193]", "")

匹配128到193以外的字节,然后替换成空字符串。长度直接 count就行。

这样不管是英文还是中文,都算一个长度。

既然标题上是多种,肯定会有另外一种。假设我这个长度只是用做显示呢,中文算2个字符,英文算1个字符呢。

  local count = 0
  for uchar in string.gfind(text, "([%z\1-\127\194-\244][\128-\191]*)") do 
    if #uchar ~= 1 then
      count = count +2
    else
      count = count +1
    end
  end 

这样就可以啦,我真佩服我自己的机智 生气



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值