为了处理中文,对于类似下面函数,可能会取到半个汉字的情况,
substr = string.sub(str,i,[,j] );
substr = string.left(str,n);
有些语言增加了处理汉字的对应函数,形式类似下面,将一个汉字的长度也以1为单位
substr = string.subc(str,i,[,j] );
substr = string.leftc(str,n);
假如 :str="abc是英文字母,..."
想取6个字符"c是英文字母",下面只能取到"c是英"和半个汉字,
substr = string.sub(str,3,8 );
对于类似的问题,请教处理方法。
谢谢!
转换为table数组处理吧,string库的函数table里面很多都有类似的.
可以封装一个库.
//导入字符串扩展函数库
import string.ex
//将中文字符串转换为数组
tab = string.ex.totable("12在2a有bc中 文233" )
io.open()
for(i=1;#tab;1){
//显示第i个字符
io.print( tab[ i ] )
}
//取i到j位置的字符
subtab = { table.unpack(tab,3,7) }
//数组转换为字符串
str = string.join( subtab)
io.print( str )
阅读(780) | 评论(0) | 转发(1) |