计算一段字符串的长度(中文算两个字符)
来源:互联网 发布:mac如何完全卸载软件 编辑:程序博客网 时间:2024/05/16 15:36
因为iOS无法和C语言一样计算字符串的字符长度,在需要将一个中文字计算成两个字符的时候,我在网上查到了这个方法。
但是不知道什么原因输入中文“一”的时候,计算出来的会是一个字符(原谅我没有深究……)不知道有没有人跟我一样。
//判断一个字符是不是中文。
-(BOOL)isChinese:(NSString*)c{
int strlength = 0;
char* p = (char*)[c cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[c lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return ((strlength/2)==1)?YES:NO;
}
//计算一段字符串的长度,两个英文字符占一个长度。
- (int)countTheStrLength:(NSString*)strtemp {
int strlength = 0;
char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return (strlength+1)/2;
}
之后我就自己使用了一个不太专业的办法计算,既然OC中中文无法用ASCII转化,那我就认为用cStringUsingEncoding:NSASCIIStringEncoding返回空的就是中文(至少目前还没发生错误)。
- (int)convertToInt:(NSString*)strtemp {
int strlength = 0;
for(int i =0; i < [strtemplength]; i++)
{
NSString *temp = [strtemp substringWithRange:NSMakeRange(i, 1)];
if ([selfisChinese:temp]) {
strlength++;
}
strlength++;
}
return (strlength+1)/2;
}
-(BOOL)isChinese:(NSString*)c{
if (c.length && [ccStringUsingEncoding:NSASCIIStringEncoding]) {
return NO;
}
return YES;
}
- 计算一段字符串的长度(中文算两个字符)
- C#计算字符串长度(中文两个字符)
- 计算一段字符串的长度是否超出规定字数,两个英文字符占一个长度。
- 计算中英文混合字符串长度,中文算两个字符
- Objective-C ,ios,iphone开发基础:如何判断一个字符是不是中文字符。计算一段字符串的长度。
- js 字符串的字符长度。(用于验证input长度,中文算两个字符)
- php取含有中文的字符串的真实长度(一个中文算两个字符)
- 计算含有中文字符字符串长度的函数
- javascript计算中文字符长度(一个中文字符相当于两个英文字符)
- 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
- 默认字符编码是UTF8的linux服务器,java计算字符串长度(半角算一个,全角算两个)
- 将字符串按照指定的长度进行分割(一个中文视为两个字符)
- Lua实现计算 UTF8 字符串的长度,每一个中文算一个字符
- Lua 计算 UTF8 字符串的长度,每一个中文算一个字符
- Java String类型含普通字符以及中文字符,计算等价的中文字符串长度
- 计算两个字符串的最大公共字符串的长度,字符不区分大小写
- 计算两个字符串的最大公共字串的长度,字符不区分大小写(要求计算连续最长字串的长度)
- lua 含中文的字符串处理--分离字符、计算字符数、截取指定长度
- 如何在虚拟机中添加设备
- 反向传播神经网络极简入门
- 聚类算法总结
- 安卓各种资源介绍及使用方法以及工程各文件夹的介绍
- Mac OS X快速显示、恢复隐藏文件的方法
- 计算一段字符串的长度(中文算两个字符)
- 机器视觉会议以及牛人
- 内核符号表System.map
- 003 Longest Substring Without Repeating Characters [Leetcode]
- 适配器模式(Adapter)
- Mongodb开启与关闭
- 容易忘的CSS总结前端项目中可能用到的CSS总结
- Paper: Saliency Mapping Enhanced by Structure Tensor is published
- Flume之ChannelSelector源码分析