统一中英文长度问题

12 篇文章 0 订阅

 

最近因为在做一个项目要求很多都是英文,所以这就涉及到在页面上截取统一长度时中英文不一样长的问题。网上找了找,搞了个工具类,拿出来记录一下吧。

        

代码如下:

package com.iflytek.util;

import java.io.UnsupportedEncodingException;

/**
 * @author xdwang
 * 
 * @ceate 2012-7-19 下午08:15:11
 * 
 * @description
 * 
 */
public class ChinaEngLengthHelper {

	/**
	 * @descrption
	 * @author xdwang
	 * @create 2012-7-19下午08:15:11
	 * @param args
	 */
	public static void main(String[] args) {
		String chinaStr = "大家好,我叫王旭东!这是一个解决中英文长度的公用方法。";
		String chinaOrEnglishStr = "Hello,我叫王旭东!This is a solution 中英文长度的公用方法。";
		String englishStr = "Hello,my name is xdwang! This is a solution to the length of the public methods in both Chinese and English.";
		System.out.println(subStrHelper(chinaStr, 10, "..."));
		System.out.println(subStrHelper(chinaOrEnglishStr, 10, "..."));
		System.out.println(subStrHelper(englishStr, 10, "..."));
	}

	/**
	 * @descrption 将给定的字符串按着给定的截取长度截取 <br>
	 *             注意一个汉字占2个字节
	 * @author xdwang
	 * @create 2012-6-29下午03:32:25
	 * @param text
	 *            需要截取的字符串
	 * @param length
	 *            截取的长度,这里的是汉字length的长度,中英文长度和汉字length长度一致
	 * @param endWith
	 *            截取后字符串后缀,一般以...结束
	 * @return 截取后的字符串
	 */
	public static String subStrHelper(String text, int length, String endWith) {
		int textLength = text.length();
		int byteLength = 0;
		StringBuffer returnStr = new StringBuffer();
		for (int i = 0; i < textLength && byteLength < length * 2; i++) {
			String str_i = text.substring(i, i + 1);
			if (str_i.getBytes().length == 1) {// 英文
				byteLength++;
			} else {// 中文
				byteLength += 2;
			}
			returnStr.append(str_i);
		}
		try {
			// getBytes("GBK")每个汉字长2,getBytes("UTF-8")每个汉字长度为3
			if (byteLength < text.getBytes("GBK").length) {
				returnStr.append(endWith);
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return returnStr.toString();
	}

}

 

结果:

大家好,我叫王旭东!...
Hello,我叫王旭东!Th...
Hello,my name is xdw...

 

大家从结果上看还是差不多吧。 Ok ,收工

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件名称:公司网站源代码企业网站模板免费版 软件版本:V2008 建议分类:全站系统 联系EMAIL:[email protected] 软件网站:http://www.wygk.cn 演示网站:http://www.wygk.cn/qywz8 下载地址:http://www.wrtx.cn/dow/qywz4.rar 软件容量:8300 KB 应用平台:ASP+ACCESS 联系方式:QQ:290116505,454882888 联系电话:020-34700400,34506590,13719472523,13527894748 界面预览:http://www.wrtx.cn/dow/qywz4.jpg 软件介绍: 公司网站源代码企业网站模板免费版,企业网站管理系统,企业网站自助建站管理系统源码.后台地址/admin,后台帐号admin密码为admin 企业网站管理系统,由广州网软天下http://www.wrtx.cn企业网站建设专家自主开发,是一套通用的,公司,企业自助建站网站管理系统,公司网站模板,企业网站模板,公司网站后台程序,公司企业网站源代码,公司网站免费下载版.美观的前台,强大的网站后台管理功能,自助管理前台相关栏目.使公司,企业网站,最大范围被人了解,占得网络市场.本系统有宣传,介绍,展示,推广,销售公司企业的产品与服务,开展网上电子商务业务的,实现营利,是整站系统设计功能的最终目标.完善的网站子模块,如企业简历,企业文化,企业新闻,业内资讯,产品展示,下载中心,企业荣誉,营销网络,人才招聘,客户留言,会员中心,充分考虑了公司,企业中英文网站管理系统的通用需求.全后台管理方式,后台功能齐全,使用维护方便.无论是生产,销售,还是服务型的大中小型公司,企业的网站管理人员只要会打字,就会建起一个专业的公司,企业网站,随时管理网站内容.此系统是基于ASP+ACCESS技术开发的电子商务平台,运行安全,稳定,快速,全自动化、全智能的在线方式管理、维护、更新的企业网站管理系统。提供下载的整站,程序源码,功能完全,欢迎大家下载使用,提出建议,使这一套企业网站管理系统,功能更加完全,真正的能为大家在建设公司,企业网站中带来安全,稳定,高效,正式的版本.此系统直接上传到你的网站空间就可以使用了。本系统分企业网站管理系统简体中文版,企业网站管理系统简繁版,企业网站管理系统中文全屏版,企业网站管理系统中英繁版,企业网站管理系统中英繁全屏版.各种版本请到http://www.wrtx.cn下载中心下载使用. 公司企业网站管理系统中英繁正式版源码,公司网站自助建站系统源码正式版由企业建站专家,企业网站系统开发商www.wygk.cn/cnen2网域高科公司荣誉出品,采用asp+access开发, 运行稳定,快速,安全性能优良,功能更强大,是一套通用的,公司,企业自助网站管理系统,调试请查看《iis安装使用说明书》 企业网站管理系统信息模块化处理,网站速度超快。我们的企业网站源码前台内容栏目结构清晰,易于访问者查看想要的内容,也是搜索引擎最喜欢的网页结构,相信很乐意光顾你用本系统搭建的站点。公司网站管理系统后台管理同样结构清晰,便于管理,提高效率。公司企业网站自助建站管理系统源码.美观的前台,强大的网站后台管理功能,自助管理前台相关栏目.人机交互数据输入界面十分干净清爽,我们坚信这是一流的设计思想。所有信息内容在线完成编辑,就象WORD一样简单、可视而又功能完善,几乎能完成你想要的所有效果。中文,英文,繁体三语使公司,企业网站,最大范围被人了解,占得网络市场.公司企业网站管理系统中英繁正式版源码有宣传,介绍,展示,推广,销售公司企业的产品与服务,开展网上电子商务业务的,实现营利,是整站系统设计功能的最终目标.任意设置的会员级别和浏览权限精确到每条记录,这对于希望不同内容针对不查看对象开放来讲,无疑是最佳解决方案。独具创意的其他信息无限扩展栏,对于希望发布固定栏目无法归类的其他信息,将是非常棒的途径。完善的网站子模块,如企业简历,企业文化,企业新闻,业内资讯,产品展示,下载中心,企业荣誉,营销网络,人才招聘,客户留言,会员中心,充分考虑了公司,企业中英文网站管理系统的通用需求.全后台管理方式,后台功能齐全,使用维护方便.无论是生产,销售,还是服务型的大中小型公司,企业的网站管理人员只要会打字,就会建起一个专业的公司,企业网站,随时管理网站内容.当企业信息介绍内容过长,需要多次滚屏时,可以考虑对内容做内分页处理。流量统计信息可以清零重置。 信息暂存功能,即对于某些临时不需要发布的内容暂存起来,不用删除,以后重新开放即可。 所有前台提交表单防刷新处理,有效过滤垃圾信息提交。此系统是基于ASP+access技术开

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值