lua多种方式计算字符长度

来源:互联网 发布:淘宝卖面膜名字店面 编辑:程序博客网 时间:2024/05/18 03:47

刚遇到一个坑,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 

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



0 0