求字符串自动换行算法

当判断到每行的末尾的时候,如果是一个单词的话不能让该单词分为两行显示,
也就是不能出现这种情况:

那换一种,要简单一点,就让一段字符串自动换行,保证一个完整的单词不能在换行的时候被割开

每列每行为30个字符   与   单词不能分开有些矛盾

我有一个设想,看看能不能实现,回头我试着做个function试试

主要的思路是这样,首先,把文字全部存入一个字符串中,使用截取得到30个字符。截取两段。判断第二段的头一个字符是不是空格,如果不是,把前面一个字符串的最后部分(就是最后一个空格之后的内容,赋值给截取的第二段字符串

第二步,把第二段字符串赋值给第一段字符串,然后判断第一段字符串是不是30个字符,多余30,按照第一步对于第一段字符串进行操作,但是多余的部分,存入一个零时的字符串temp中。

第二段字符串再从总的字符串中读取30-temp的长度的字符串,再赋值给第一段字符串,重复上面的步骤,知道总字符串结束。


我想,只要把我上面的思路进行一下改进,然后把函数写出来,应该可以实现楼主的要求的。回头我试着写写~

不明白,如果30个字符正好切到words   的o   ,那么这个words   是再当前行还是再下一行呢?

报纸的那个效果用css里的word-wrap就可以了,不必要求字符固定为多少,因为字符有可能是非等宽的。

楼主,我能理解你的意思,你要求不仅能够自动换行,还能平均分配一行的单词,国外报纸的确是这样做的。相比之下,我们中文报纸就方便多了。
修正一个小bug:上面代码如果某行只有1个单词,会出现除0错误。现在解决了:
还有就是说一句,函数使用方法同wordwrap()一样。
我做了一个小网页,楼主可以直接登陆看看,是不是符合你的要求:
我觉得这里用空格作为判断条件最好了。

用strpos得出30个字符以后的第一个空格位置。然后换行。ok。

不懂PHP,我写一个JavaScript的,原理一样,你修改一下就可以移到PHP上了.
我这个例子里是15个字符截一次.
整个字符串放3030的切取,判断当然最后一个字是否是空格,不是的话取前面切的   30个字符中的最后一个空格切取,多的字符连上去就行了比较容易的事

按你这个逻辑很好实现。
循环查找字符串长度31,61,91...这些位置。换行条件为charcnt >=30 && currentchar != '/s'如果不满足currentchar != '/s'这个条件就继续向下找,直到满足currentchar != '/s'条件为止。
 

既然是游戏,总不会只有一台服务器吧。能分开的全部分开。
登陆验证配几台,统计在线用几台。。,然后存储用户数据用几台,我就猜想一下,不知道合理不合理。

有道理,但是。。。。
他需要连接账号数据库进行查询的。

不仅仅是记录实时在线人数,还有游戏消费记录汇总(每个玩家每天消费多少元宝多少金币),还有就是全服今日充值次数,平均充值额。。。。

如果你的网站够大,人数众多,并发率很高。那就专门弄一台服务器开memcached来记录当前登录状态吧。比你总去更新数据库要好的多。


比如单词不能分开,你希望怎样处理它,是从前面的换行符再分,还是从后面的换行符分、

来源:足球直播

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值