Lua中string 字符换行方法

--参数为一个字符串和需要多少个字符换行

--函数体内操作判断换行位置是否为空格,否的话需要添加链接符“-”

--返回一个设置好的字符串和行数(以便通过行数来设置字符scale)

 

 

function lua_string_autoLine2(str,lineNum)
    local n=1; --用来计数行数

 

    local num = cocos.splitUTF8(str)       -- 一个计算字符串长度的封装函数(文章列表内有)

 

 

    if num <= lineNum then        -- 判断字符串长度是否 < 需要换行长度 false则不需要换行
        return str,n;

 

    end

 

 

    local index = 0;
    local extPos = 0;
    while(true) do
        index = index + 1;
        local cPos = (lineNum)*index + extPos;
        local temp = string.sub(str,cPos,cPos);
        local befTemp = string.sub(str,cPos-1,cPos-1);
        local nextTemp = string.sub(str,cPos+1,cPos+1);

 

        if temp ~="" then

    --根据当前位和前一位判断是否需要加连接符

 

            if (temp ~= " " and befTemp ~=" ") and (temp ~= " " and nextTemp ~=" ") then 
                local fs = string.sub(str,1,(cPos-1))
                local ss = string.sub(str,(cPos))
                str = fs.."-".."\n"..ss;

 

                n=n+1;

  --每次一个换行一个-是增加两个前移位置来寻找,因为增加了一个实体字符 “-”,所以实际只加了一位

                extPos = extPos + 1;

--根据当前位和前一位判断是否需要加连接符

 

            elseif temp ~= " " and befTemp ==" " then 
                local fs = string.sub(str,1,(cPos-1))
                local ss = string.sub(str,(cPos))
                str = fs.." ".."\n"..ss;

 

                n=n+1;

  --每次一个换行一个-是增加两个前移位置来寻找,因为增加了一个实体字符 “-”,所以实际只加了一位

                extPos = extPos + 1;
            else
                local fs = string.sub(str,1,cPos)
                local ss = string.sub(str,cPos+1)
                str = fs.."\n"..ss;
                extPos = extPos + 1
                n=n+1;
            end
        else
            break;
        end
    end
    return str,n;
end

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值