如何用正则表达式来求一个串的长度 如题,包括中文 怎么求?? 比如我想求“我abc”的长度。并不是字符串的长度,而是按GBK 或者UTF-8的标准的长度 这个应该是5 大家帮帮忙。谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 在这个问题上,忘记正则表达式2 准确的提法不是字符串长度(这个长度一般就是指字符长度),而是其字节长度 System.out.println("我abc".getBytes("GBK").length); System.out.println("我abc".getBytes("UTF-8").length); 正则不知道。等待str.getBytes().length /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * * @param value * 指定的字符串 * @return 字符串的长度 */ public static int length(String value) { int valueLength = 0; String chinese = "[\u0391-\uFFE5]"; /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */ for (int i = 0; i < value.length(); i++) { /* 获取一个字符 */ String temp = value.substring(i, i + 1); /* 判断是否为中文字符 */ if (temp.matches(chinese)) { /* 中文字符长度为2 */ valueLength += 2; } else { /* 其他字符长度为1 */ valueLength += 1; } } return valueLength; }试试看吧 转UTF-8 一个中文算3个长度诶。。 纳闷 没什么纳闷的,这个是UTF-8,不是Unicode。UTF-8字母1个字节,所以很多*ML(html,xml)文档,都是用utf-8,因为大部分*ml,里面都是<xxxx>占据的空间 java 上传文件的问题 Hibernate资源 如何搭建Track+的运行环境 EJB 和 Spring 区别 谁能讲下spring与ejb优势,分别是何用在什么场合? UTF-8的xml文件,修改后再写入格式全变?不解! 希望了解一下java在电信领域的应用情况 讨论:全部用开源软件设计一个J2EE环境 请问在Apache+Tomcat环境下能支持EJB吗?各位高手能告诉我J2EE的环境怎么配置? Maven的依赖产生文件,但没jar包, 怎么办? 求助:一个很简单很简单的servlet配置,可就是搞不定 slf4j怎么屏蔽info和debug级别的日志呀?
2 准确的提法不是字符串长度(这个长度一般就是指字符长度),而是其字节长度 System.out.println("我abc".getBytes("GBK").length);
System.out.println("我abc".getBytes("UTF-8").length);
str.getBytes().length
/**
* 获取字符串的长度,如果有中文,则每个中文字符计为2位
*
* @param value
* 指定的字符串
* @return 字符串的长度
*/
public static int length(String value) {
int valueLength = 0;
String chinese = "[\u0391-\uFFE5]";
/* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
for (int i = 0; i < value.length(); i++) {
/* 获取一个字符 */
String temp = value.substring(i, i + 1);
/* 判断是否为中文字符 */
if (temp.matches(chinese)) {
/* 中文字符长度为2 */
valueLength += 2;
} else {
/* 其他字符长度为1 */
valueLength += 1;
}
}
return valueLength;
}
试试看吧
没什么纳闷的,这个是UTF-8,不是Unicode。UTF-8字母1个字节,所以很多*ML(html,xml)文档,都是用utf-8,因为大部分*ml,里面都是<xxxx>占据的空间