王朝网络
分享
 
 
 

将中英文混合的字符串换行 (续)

王朝java/jsp·作者佚名  2006-03-10
宽屏版  字体: |||超大  

在上一篇文章《将中英文混合的字符串换行》中提到了一个换行的算法,后来在实际应用中发现,还是有些问题的,比如,一行全是英文,或者全是中文,排出来的长度是不一样的。所以。后来不得不借用表格以及css来控制,其实也很简单,就加一句话 style="word-break:break-all"。这样自动换行没问题。

但是,我们还要实现的另外一个功能是:截取字符串的一部分,作为图片的简介,比如说:在一个iframe中显示最新的消息,配有图片,但是给出的位置不可能全部显示所有数据,因此要截取一部分。而且字符串中有 <br/>这样的换行符,因为不能简单的截取。再有就是显示的行数不能超过三行。

经过一番努力,将于写了个截取函数,还能将就这样。函数如下

public String getShortString(String source,int cutPos){

String shortStr = "";

int brNum=0;

String tmp="";

String tmp2 = "";

String tmpShort="";

int pos = 0;

int total_len = 0;

try{

pos = source.indexOf("<br/>");

System.out.println("1 pos = "+pos);

if(pos>0){

if(source.length()<=cutPos){

tmpShort = source;

}else{

//判断在截取位置是否有<br/>出现,所以往前往后各取4位,判断是否有<br/>出现

//为什么取四,那是因为<br/>长度是5,而要<br/>中一个字符出现在cutPos位置,

//取四最可能是cutPos位置是> 或者 < ;所以取四包括了所有可能出现情况

//1:当原字符串长度大于截取位置+<br/>的长度

if ( (source.length()-cutPos) >=4){

if(cutPos>=4){

tmp = source.substring(cutPos-4,cutPos+4);

}else{

tmp= source.substring(0,cutPos+4);

}

}else{

if(cutPos>=4){

tmp = source.substring(cutPos-4,source.length());

}else{

tmp= source.substring(0,source.length());

}

}

System.out.println("1 tmp = "+tmp);

int ipos = tmp.indexOf("<br/>");

if (ipos>0){

tmpShort = source.substring(0,cutPos-4)+tmp.substring(0,ipos)+"<br/>";

}else{

tmpShort = source.substring(0,cutPos);

}

}

System.out.println("1 tmpShort = "+tmpShort);

tmp = tmpShort;

tmp2 = tmpShort;

while(pos>0){

brNum+=1;

tmp = tmp2.substring(0,pos);

if(brNum>2){

tmp = tmp2.substring(0,pos);

System.out.println("tmp="+tmp);

//shortStr+=tmp;

pos = 0;

//tmp2 = tmp;

}else{

shortStr+=tmp+"<br/>";

tmp = tmp2.substring(pos+5);

System.out.println("tmp 2 ="+tmp);

pos = tmp.indexOf("<br/>");

System.out.println("pos="+pos);

tmp2 = tmp;

}

}

if (brNum==1){

System.out.println("1");

if(tmp.length()>cutPos/2){

shortStr+=tmp.substring(0,cutPos/2)+" ...";//当有一个<br/>时 后面再也没有的时候,第二行截取设定长度的一半。

}else{

shortStr+=tmp+" ...";

}

}else if(brNum==2){

System.out.println("2");

if(tmp.length()>cutPos/3){

shortStr+=tmp.substring(0,cutPos/3)+" ...";//当有二个<br/>时 后面再也没有的时候,第三行截取设定长度的1/3。

}else{

shortStr+=tmp+" ...";

}

}else if(brNum==3){

System.out.println("3");

if(tmp.length()>cutPos/4){

shortStr+=tmp.substring(0,cutPos/4)+" ...";//当有三个<br/>时 后面再也没有的时候,第三行截取设定长度的1/4

}else{

shortStr+=tmp+" ...";

}

//shortStr+=tmp+"<br/>"+" ...";

}

}else{

if(source.length()<=cutPos){

tmpShort = source;

}else{

tmpShort = source.substring(0,cutPos)+" ...";

}

/* if(source.length()>cutPos){

if(tmpShort.length()>cutPos){

shortStr = tmpShort.substring(0,cutPos)+" ...";

}else{

shortStr = tmpShort+" ...";

}

}else{

shortStr = tmpShort;

}*/

shortStr = tmpShort;

}

}catch(Exception e){

if(source.length()<=cutPos){

tmpShort = source;

}else{

tmpShort = source.substring(0,cutPos)+" ...";

}

e.printStackTrace();

shortStr= tmpShort;

}

return shortStr;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有