零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> Object-C 基础
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> Object-C 线程
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> OpenGL ES
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> GPUImage
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> AVFoundation
零基础 Object-C 学习路线推荐 : Object-C 学习目录 >> CocoaPods
一.NSString 获取字符串长度
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:iOS NSString 获取字符串长度
//@Time:2021/09/12 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
//常规字符串
NSString* str = @"www.codersrc.com";
NSLog(@"str = %@ len = %d",str,[str length]);
//包含空格
NSString* str = @"ww w.c odersrc.com";
NSLog(@"str = %@ len = %d",str,[str length]);
//包含中文 - 错误的获取含有中文长度方式,默认中文和英文都是一个字节
NSString* str = @"www.codersrc.com猿说编程";
NSLog(@"str = %@ len = %d",str,[str length]);
/*
str = www.codersrc.com len = 16
str = ww w.c odersrc.com len = 18
str = www.codersrc.com猿说编程 len = 20
*/
由于使用 [NSString length]
方法调用获取的长度是一个中文和一个英文都是一个字节,很明显是错误的!
二.NSString 获取含有中文的字符串长度
1.lengthOfBytesUsingEncoding
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:iOS NSString 获取字符串长度
//@Time:2021/09/12 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
NSString* str = @"www.codersrc.com猿说编程";
NSLog(@"str = %@ len = %d",str,[str lengthOfBytesUsingEncoding : NSUTF8StringEncoding]);
/*
str = www.codersrc.com猿说编程 len = 28
*/
2.cStringUsingEncoding
该方式是先将 NSString 转 char ,然后遍历获取字符串长度,示例代码如下:
- (int)convertToInt:(NSString*)strtemp {
int strlength = 0;
char *p = (char *)[strtemp cStringUsingEncoding:NSUTF8StringEncoding];
for (int i=0; i < [strtemp lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return strlength;
}
//调用
NSLog(@"str = %@ len = %d",str,[self convertToInt:str]);
/*
str = www.codersrc.com猿说编程 len = 28
*/
三.猜你喜欢
- Xcode – The application’s Info.plist does not contain CFBundleShortVersionString.
- Xcode – This app has attempted to access privacy-sensitive data without a usage description.
- Xcode – Embedded binary’s bundle identifier is not prefixed with the parent app’s bundle identifier
- Xcode – Your maximum App ID limit has been reached. You may create up to 10 App IDs every 7 days
- Xcode replace 使用正则表达式替换文字
- Object-C 获取系统字体和字体名字
- Object-C 加载 TTF/OTF/TTC 文件
- Object-C private var mobileDevice文件夹
- Object-C 保存文件到相册
- Object-C 加载 TTF/OTF/TTC 文件
- Object-C 保存文件到相册
- iOS NSString 字符串的排序
- iOS NSString 创建和初始化
- iOS UIImage 与 RGBA 相互转换
- iOS NSString 查找指定字符串出现的次数
- iOS NSString 查找指定字符串位置
- iOS NSString 拆分字符串
- iOS NSString 截取字符串
- iOS NSString 和 NSArray 相互转换
- iOS NSString 包含字符串/匹配字符串
- iOS NSURL URLWithString 与 fileURLWithPath 区别
- iOS NSURL 与 NSString相互转换
- iOS NSString 获取中文字符串长度
ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容