请教一个字符串处理的问题。
有一个字符串,既有中文也有英文。比如string="543abcdefg我有一oi0987个字符串abcd001234"
我想用函数的方法,截取出内部的汉字。形成一个新的字符串,然后每个汉字存入表格string_table里。
比如这个例子,
我希望的结果就是:
截取的字符串是:mystring="我有一个字符串",并且string_table="我",string_table="有".....。
请问,lua程序如何处理呢?
请高手指点如何做到。谢谢!!
[ 本帖最后由 littleknife 于 2010-11-16 01:26 PM 编辑 ] 能确定字符串中中文的编码么?是 GBK 还是 UTF-8 ? 能弄一个单独的lua函数处理就成。
用赋值命令赋值字符串,string="....",应该是系统默认编码。 原帖由 littleknife 于 2010-11-16 13:29 发表 http://pkuxkx.net/forum/images/common/back.gif
能弄一个单独的lua函数处理就成。
用赋值命令赋值字符串,string="....",应该是系统默认编码。
编码必须搞清楚,因为环境不一样,虽然 Lua 都能处理,但结果却大不相同。 MUSH中用赋值语句赋值的字符串属于什么编码?是utf8?还是ansi,好像是ansi. MUSH 从 MUD 中接收到的字符串,是由 MUD 决定的,相对北侠来说,因为北侠的编码是 GB2312 的,所以 MUSH 中接收到的字符串都是 GB2312 的。 如果是 GBK,下面的代码就可以了。local a_str = "543abcdefg我有一oi0987个字符串abcd001234"
a_str = string.gsub(a_str, "[%a,%d,%p]", "")
local str_t = {}
for i = 1, #a_str, 2 do
local b_str = string.sub(a_str,i,i+1)
table.insert(str_t, b_str)
end --for
table.foreach(str_t, print)
[ 本帖最后由 ddid 于 2010-11-16 02:09 PM 编辑 ] 再次感谢,DDid,哈哈。太有用啦。ttk_00 ttk_00 用来干啥? 哈哈。用来识别两个字符串的拟合程度。。比如,红豆题目乱码、在比如对比地点找金子等等。嘿嘿。。ttk_10
[ 本帖最后由 littleknife 于 2010-11-16 03:15 PM 编辑 ]