社区
Java SE
帖子详情
字符串中的中文字符长度处理
xywl
2005-11-30 01:08:47
我的一个程序中需要统计字符串长度,但string中把汉字作为一个字符,我需要按2个字符来计算长度,如何实现好?
如:"dfs中"为5个字符
...全文
751
7
打赏
收藏
字符串中的中文字符长度处理
我的一个程序中需要统计字符串长度,但string中把汉字作为一个字符,我需要按2个字符来计算长度,如何实现好? 如:"dfs中"为5个字符
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fashi1000
2005-12-05
打赏
举报
回复
我没任何转换怎么就把"ABC中"的长度计算成5了,你在什么程序里搞成4的
转成 utf8 每个中文字算成四个字符
eureka0891
2005-12-05
打赏
举报
回复
public static int lengthOfQuanJiao(String value) {
if (value == null)
return 0;
StringBuffer buff = new StringBuffer(value);
int length = 0;
String stmp;
for (int i = 0; i < buff.length(); i++) {
stmp = buff.substring(i, i + 1);
try {
stmp = new String(stmp.getBytes("utf8"));
} catch (Exception e) {
}
if (stmp.getBytes().length > 1) {
length += 2;
} else {
length += 1;
}
}
return length;
}
捏造的信仰
2005-12-03
打赏
举报
回复
晕死。
String str = "楼主真是伤脑筋12345."
System.out.println(str.getBytes().length);
xywl
2005-12-03
打赏
举报
回复
上面错了.
我试了stmp = new String(stmp.getBytes("GBK"));
System.out.println(lengthOfQuanJiao("中国abc"));
结果是
4
结果应为7啊.
xywl
2005-12-03
打赏
举报
回复
我试了stmp = new String(stmp.getBytes("GBK"));
System.out.println(lengthOfQuanJiao("中国abc"));
结果是
4
结果应为5啊.
eureka0891
2005-12-01
打赏
举报
回复
根据编码有关,最简单的:
/**
* 取得字符串的长度(按全角字符计算,如果是半角字符,则只占半个字符),取得的长度进行四舍五入。
* @param 字符串
* @return 全角长度
*/
public static int lengthOfQuanJiao(String value) {
if (value == null)
return 0;
StringBuffer buff = new StringBuffer(value);
float length = 0.0f;
String stmp;
for (int i = 0; i < buff.length(); i++) {
stmp = buff.substring(i, i + 1);
try {
stmp = new String(stmp.getBytes("utf8"));
} catch (Exception e) {
}
if (stmp.getBytes().length > 1) {
length += 1;
} else {
length += 0.5f;
}
}
return Math.round(length);
}
这儿写你实际的编码,
stmp = new String(stmp.getBytes("utf8"));
实际应该做的话,是取bytes的unicode码,然后判断unicode是否在此范围内.
xywl
2005-11-30
打赏
举报
回复
老大们帮帮忙啊
Python 47个
字符
串
方法
# Python 47个
字符
串
方法## 课程介绍同学们是否总是要搜资料、查官网后,才知道怎么操作
字符
串
?如果是,来学学本课程吧,本课程以讲解官网文档的方式,讲解 Python 47个
字符
串
方法,涉及替换、删除、连接、查找、...
C语言获取
字符
串
长度
的几种方法
在C语言
中
,想要获取
字符
串
长度
可以有很多方法,下面分别介绍 一、使用sizeof()运算符 在C语言
中
,sizeof() 是
长度
的运算符,括号
中
可以放入数据类型或者表达式,一般我们用来计算
字符
串
长度
。 基本用法: int i=10; sizeof(i);//表达式 char str[]="hello world"; sizeof(str); sizeof(double);//数据类型 在使用sizeof()求
字符
串
长度
时,会将 ‘\0’ 也计算到
字符
串
长度
中
。例如"abcd"用sizeof()求
长度
会
C语言之
字符
串
长度
的计算方法
特别注意 (1)计算
字符
串
长度
时关键是要注意辨认转义
字符
;(2)一个转义
字符
总是以反斜杠开始,再加一个其他
字符
组成。所以,遇到反斜杠时要特别注意!!! 1、不带转义
字符
的
字符
如:“abc!x=/”,其
长度
为7 2、带转义
字符
的
字符
串
(1)
字符
串
“abc\n”:其
中
的'\n'为转义
字符
(换行符),计算
字符
串
长度
时只能计作一个
字符
,所以该
字符
串
的
长度
为4(而 不是5)。 ...
js 获取汉字
字符
串
长度
在Unicode编码
中
,由于码点大于0xFFFF的
字符
必须用双字节表示,导致使用String.length获取这些
字符
串
长度
时会返回2。 例如: "啊".length // 1 "????".length // 2 那么我们该如何正确的获取包含这些
字符
的
字符
串
长度
呢? 此时可以使用ES6新增的扩展运算符(...)将
字符
串
转为数组,然后获取数组的
长度
。 like: [..."????"].length // 1 ...
python
字符
串
长度
_在python
中
如何获取
字符
串
的
长度
python
中
如何获取
字符
串
的
长度
?本篇文章就给大家介绍4种在python
中
计算并输出
字符
串
长度
的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。Python
中
的
字符
串
是Unicode代码点的不可变序列。给定一个
字符
串
,我们就可以找到它的
长度
。例:输入:'你好世界!'输出:5输入:'你 好 !'输出:5下面我们就来介绍在python
中
计算
字符
串
长度
,并输出
长度
的4种方法。【相...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章