将中英文混合的字符串换行
来源:互联网 发布:电视网络机顶盒推荐 编辑:程序博客网 时间:2024/05/18 00:42
由于接到一任务,大致是这样子的:一个弹页面里面要显示一段文字(多国字符),弹出页面的宽度是定死的。客户不希望文字长度过长时,下面出现水平的拉条。这就关系到一个自动换行的问题。
由于中文,日文,韩文等一般占2个字节,英文一般占1个字节,所以要换行,首先要计算长度。只有在字节长度相同的情况下换行,同时又要注意不能将中文字拆开了,否则就会是乱码了。
经过一番努力,这个问题终于搞定了。具体函数如下
/*判断是否双字节字符*/
public boolean isDoublebyteWord(String str){
byte[] b;
int temp;
for (int i = 0; i < str.length(); i++) {
b = str.substring(i, i + 1).getBytes();
temp = b[0];
if (temp > 0) {
return false;
}
}
return true;
}
/*给字符串添加换行符,其中linepos是需要换行的位置,按字节算的*/
public String lineStr(String s,int linePos){
String new_str="";
int total_len=0;
int brNum=0;
for(int i=1;i<=s.length();i++){
if(isDoublebyteWord(s.substring(i-1,i))){
total_len+=2;
if(total_len>=(linePos*(brNum+1))){
new_str+=s.substring(i-1,i)+"<br/>";
brNum++;
}else{
new_str+=s.substring(i-1,i);
}
}else{
total_len+=1;
if(total_len>=(linePos*(brNum+1))){
new_str+=s.substring(i-1,i)+"<br/>";
brNum++;
}else{
new_str+=s.substring(i-1,i);
}
}
}
return new_str;
}
- 将中英文混合的字符串换行
- 将中英文混合的字符串换行 (续)
- 实现中英文混合字符串的格式化
- Oracle截取中英文混合字符串的处理
- 如何正确截取中英文混合的字符串?
- 计算中英文混合字符串的长度
- .NET 截取中英文混合的字符串。
- javascript显示过长的中英文混合字符串
- 计算中英文混合字符串的长度
- 计算中英文混合字符串的字节长度
- div内的中英文字符串换行问题
- 截取中英文混合字符串
- 截取中英文混合字符串
- 中英文混合字符串长度
- 中英文混合字符串截取
- 中英文混合字符串截取
- C# 中英文混合字符串截取
- 得到中英文混合字符串长度
- 奇妙的Base64编码
- SegWord中需要讨论的问题(2)
- Java 获取MAC地址2
- 一种有效的关系数据库压缩方法
- SQL server服务器间的数据同步
- 将中英文混合的字符串换行
- JAVA开发工具安装配置心得
- C#的环境变量
- 微想睿思之时髦技术
- 一个很经典的Ajax基础经典教程下载
- oracle不同数据类型存储空间的实例比较
- 《C++课程设计》报告
- c#把cs文件编译为dll文件
- 使用String.split方法时要注意的问题