关于字符截取的问题(菜鸟问题)高分求助

hxbwzy 2003-05-29 01:07:20
在首页新闻系统中的最新文章显示的时候(只显示标题)
出现这样一个问题
title是新闻的标题

先从数据库中读出title
int setlength_ren=24;//截取的长度

if(title.length()>=setlength)
title=title.substring(0,setlength)+"...";
out.print(title);

但是由于并不是每个文字都符合规范,尤其是有时候在后台输入标题的时候,有时候用的全角有的时候是半角,造成有时候截取的字符刚好是半个字,于是标题的末尾出现一个讨厌的“?”号。我真的不知道怎么解决。谢谢各位大家拉!
...全文
44 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbluekey 2003-05-29
  • 打赏
  • 举报
回复
不会吧,substring()函数是按字符截取的呀,不是按字节截取。,

难道我糊涂了?!
acefr 2003-05-29
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1382/1382095.xml?temp=.2038385
acefr 2003-05-29
  • 打赏
  • 举报
回复
http://www.csdn.net/Develop/read_article.asp?id=13104
acefr 2003-05-29
  • 打赏
  • 举报
回复
你用charAt方法判断地24个的ascII码是不是中文,如果是,那就取23个,不是就取24个呗~
hxbwzy 2003-05-29
  • 打赏
  • 举报
回复
楼上的想法很对
能否给个思路呢??
好感激的~~~~~~``
dignityliu 2003-05-29
  • 打赏
  • 举报
回复
你这个截取的24位,是指什么的24位?中文24个字,就是48个字节,英文24个字就是24个字节
然后中英文混排,谁知道,截取到哪能够正好是英文或正好是中文?你想想看,是不是思路有问题?还是我理解的不对^0^
hxbwzy 2003-05-29
  • 打赏
  • 举报
回复
没有人吗??
hxbwzy 2003-05-29
  • 打赏
  • 举报
回复
请问在jdk的老版本下面有解决方法吗??
谢谢
cgsun 2003-05-29
  • 打赏
  • 举报
回复
jdk1.4里有
hxbwzy 2003-05-29
  • 打赏
  • 举报
回复
Method subSequence(int, int)
not found in class java.lang.String.

似乎有点问题哦
希偌 2003-05-29
  • 打赏
  • 举报
回复

title.subSequence(0,setlength)
lotofu 2003-05-29
  • 打赏
  • 举报
回复
agree lbluekey(蓝鸟)
wukongqiao 2003-05-29
  • 打赏
  • 举报
回复
服务器底层字符集是英文时,substring()就会按字节截取。你必须逐字节判断是否是中文字节,比如GB2312的字节码都是负数,到你要截取的长度时再判断中文字节的个数是否是双数,再进行处理。当然,如果可以把服务器的字符集设成中文,这些问题就都没有了。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧