最近项目有个需求,文章的作者最多显示7个中文字,英文字符算半个中文字,超过7个中文字,则显示:前7个中文字+...,使用NSString的length方法,不管是一个中文还是英文字符,都是返回1。因此写了下面的方法,传入需要截取的原字符串和最多显示的字数(两个英文字符算一个中文字符):

-(NSString*)subTextString:(NSString*)str len:(NSInteger)len{
if(str.length<=len)return str;
int count=0;
NSMutableString *sb = [NSMutableString string];
for (int i=0; i<str.length; i++) {
NSRange range = NSMakeRange(i, 1) ;
NSString *aStr = [str substringWithRange:range];
count += [aStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding]>1?2:1;
[sb appendString:aStr];
if(count >= len*2) {
return (i==str.length-1)?[sb copy]:[NSString stringWithFormat:@"%@...",[sb copy]];
}
}
return str;
}

iOS根据字节数截取字符串相关推荐

  1. 解决在C#(.net)按字节数截取字符串最后出现乱码的问题

    解决在C#(.net)按字节数截取字符串最后出现乱码的问题 参考文章: (1)解决在C#(.net)按字节数截取字符串最后出现乱码的问题 (2)https://www.cnblogs.com/xion ...

  2. C#根据字节数截取字符串

            /// <summary>         /// 按最大字节数,截取字符串         /// </summary>         /// <pa ...

  3. Java按字节数截取字符串

    最近在开发的过程中遇到的问题,接口要求传入参数在255个字节以内(GBK),但是入参是一个既有中文又有英文的字符串,所以需要按字节截取,翻了半天也没找到有现成的方法,于是选择了这样一种方法实现. /* ...

  4. vba 根据字节数截取字符串

    vba 根据字节数截取字符串 ' str 要截取的字符串 ' byteLen 需要截取的字节长度 ' return byteLen长度的字符串 Public Function kiritoruStr( ...

  5. Java:根据字节数截取字符串,但是汉字不能截取半个。

    截取字符串指定指定字节数的内容,如果指定的字节数在汉字的中间,汉字不能截取部分,只截取前面的内容. package com.lcx.test;import java.io.UnsupportedEnc ...

  6. C#根据字节数截取字符串【转载】

    Web应用程序在浏览器中显示字符串时,由于显示长度的限制,常常需要将字符串截取后再进行显示.但目前很多流行的语言,如C#.Java内部采用的都是Unicode 16(UCS2)编码,在这种编码中所有的 ...

  7. java 判断汉字是否截半,Java 按照字节来截取字符串的代码(不会出现半个汉字)

    /* *    Copyright 2012-2013 The Haohui Network Corporation */ package com.haohui.common.utils; /** * ...

  8. iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iOS 字符串匹配、截取字符串、匹配字符串、分隔字符串

    iOS之字符串截取.iOS 字符串替换.iOS字符串分隔.iOS之字符串匹配.截取字符串.匹配字符串.分隔字符串 1.iOS 字符串截取 //1.ios截取字符串NSString *string =@ ...

  9. 自定义EL函数解决JSTL标签不足之处——按字节长度截取字符串

    题外话:做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结 ...

最新文章

  1. IOS固定IP对动态IP用pre-share
  2. MySQL 故障集锦
  3. pandas语法乱、API多?你需要整理一下!|知乎讨论
  4. 做安全操作系统,这位技术老兵是认真的!
  5. 我们去的地方一定会有屎
  6. 强化学习《基于价值 - Q-Learning》
  7. Python窗体操作函数
  8. 【python爬虫】报错module requests has no attribute get
  9. 用winformz时间格式不正确_煮八爪鱼,有人用冷水,有人用开水,大厨:都不对,教你正确做法...
  10. oracle database 10g rman备份与恢复pdf,Oracle Database10g RMAN备份与恢复
  11. 如何把PDF中的英文翻译成中文
  12. 英特尔的指令集体系结构_VLIW指令集架构 cpu指令集跟架构的区别
  13. gxf------阿里云学生机部署Django项目2020
  14. ctfshow 密码挑战(上)
  15. import torchvision报错,UserWarning: Failed to load image Python extension: Could not find module ‘C:\U
  16. 重力勘探正演模拟matlab,裴雪林, 郭万松 (1995) 高精度重力勘探技术在国内外的应用. 断块油田, 5, 8-11....
  17. 【二叉树:3】线索二叉树
  18. 1688店铺所有商品API接口(整店商品查询API接口)
  19. 少吃一顿就能减轻新冠重症风险?最新医学研究:定期禁食可降低死亡风险,未来可用作新冠补充治疗...
  20. CubeMX STM32串口1DMA使用IDLE中断接收、串口2DMA接收DMX512信号(标准)

热门文章

  1. [精]Odoo 8.0深入浅出开发教程-模块开发基础
  2. 将时间改为显示:几天前,几小时前,或者几分钟前
  3. 简单的python服务器程序
  4. 【转】 Android快速开发系列 10个常用工具类 -- 不错
  5. CS5中动作和批处理
  6. css布局中的居中问题
  7. 在.NET中实现彩色光标,动画光标和自定义光标
  8. 如何定制一款12306抢票浏览器——实现自动查询和预订功能
  9. C++中指向类成员指针的用法
  10. K-最近邻法(KNN)简介