iOS实现截取字符串中汉字功能

本文实例为大家分享了iOS截取字符串中汉字的具体代码,供大家参考,具体内容如下

写了一个简单的例子,从第一个汉字开始截取字符串。下面贴上代码:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
 [super viewDidLoad];

 NSArray *array = @[@"03-15_01苹果", @"412香蕉", @"#7&@15橙子"];
 for (int i = 0; i < array.count; i++) {
  NSString *chineseStr = [self getChineseStringWithString:array[i]];
  NSLog(@"chineseStr = %@\n", chineseStr);
 }
}

- (NSString *)getChineseStringWithString:(NSString *)string
{
 //(unicode中文编码范围是0x4e00~0x9fa5)
 for (int i = 0; i < string.length; i++) {
  int utfCode = 0;
  void *buffer = &utfCode;
  NSRange range = NSMakeRange(i, 1);

  BOOL b = [string getBytes:buffer maxLength:2 usedLength:NULL encoding:NSUTF16LittleEndianStringEncoding options:NSStringEncodingConversionExternalRepresentation range:range remainingRange:NULL];

  if (b && (utfCode >= 0x4e00 && utfCode <= 0x9fa5)) {
   return [string substringFromIndex:i];
  }
 }
 return nil;
}

@end

运行结果:

2016-03-22 22:10:23.639 HWEncodeTest[502:8824] chineseStr = 苹果
2016-03-22 22:10:23.639 HWEncodeTest[502:8824] chineseStr = 香蕉
2016-03-22 22:10:23.640 HWEncodeTest[502:8824] chineseStr = 橙子

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • iOS 截取字符串中两个指定字符串中间的字符串方法

    例如,要截取一个字符串中,两个指定字符串中间的字符串,OC截取方法如下: // 要截取 "> 和 </ 之间的汉字内容: @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSString *string = @"<a href=\"http\">这是要截取的内容</a>"; NSRange startRange = [st

  • iOS实现截取字符串中汉字功能

    本文实例为大家分享了iOS截取字符串中汉字的具体代码,供大家参考,具体内容如下 写了一个简单的例子,从第一个汉字开始截取字符串.下面贴上代码: #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSArray *array = @[@"03-15_01苹果&q

  • iOS如何将字符串中特定后的字变成红色

    一,效果图. 二,代码. ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UILabel *testLabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 100, 100, 50)]; testLabel.text=@"1234567

  • asp.net中C#获取字符串中汉字的个数的具体实现方法

    符串可以包括数字,字母,汉字或者其他的字符.使用Char类型的IsDigit静态方法可以判断字符串中的字符是否为数字,使用Char类型中的IsLetter静态方法可以判断字符串中是否为字母.我们来实现一种方法来实现判断字符串中是否为汉字,通过此方法可以计算字符串中汉字的个数,运行效果如图: 首先根据效果图设置好Form的界面和内容,Box1.Text为输入的字符串,我们对该字符串的处理,来计算汉字的个数,双击Buton控件,编辑其单击事件代码. 我们看下汉字的Unicode范围,普遍给出了0x4

  • Java简单统计字符串中汉字,英文字母及数字数量的方法

    本文实例讲述了Java简单统计字符串中汉字,英文字母及数字数量的方法.分享给大家供大家参考,具体如下: package org.zhy.demo.algorithm; /** * 有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数 * * @author Administrator * */ public class Str { public static void main(String[] args) { String str = "adasfAAADFD阿萨德

  • 用正则表达式匹配字符串中汉字及中文标点符号

    目录 问题: 比如: Ps: 补充: 总结 问题: 在写项目时遇到需要匹配字符串中所有的汉字并且包括简单的中文标点符号 比如: 匹配下面这个完成的字符串 let str = '上传文件,你好呀,我很好'; 网上能够查到很多匹配汉字的正则 let reg = /[\u4e00-\u9fa5]+/g; console.log(str.match(reg)); // 结果如下 ['上传文件', '你好呀', '我很好'] 从结果可以看出上面写的正则没有匹配到标点符号,,所以将完整的字符串(str)分隔

  • PHP指定截取字符串中的中英文或数字字符的实例分享

    我们在开发过程中,经常会碰到截取中文英文数字等的问题,大家知道中文所占的字符和英文数字是不同的:然后我们就会在项目的common里写一些日常的函数包含时间计算转换和中英文字符截取的函数:比如截取中英文的函数没个几行代码恐怕拿不下来的吧,现在就告诉大家一个简单的(自己本地运行过的),如有问题,请大家多多指教 $c = 'ddaabbccaa'; $d = '地球需要我们每个人的爱护'; $frist1 = mb_substr( $c, 0, 1 ,"UTF-8"); // d $dele

  • 详解PHP用substr函数截取字符串中的某部分

    经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数.答案当然是有的.PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了. 现在整理了一下substr函数的用法,做了几个例子以解新人之惑,高手请飘过. 我们先来看一下PHP substr函数的语法: string substr(string string, int start, int [length]) 参数string为要操作的字符串 参数start为你要截取

  • sqlserver中求字符串中汉字的个数的sql语句

    关于这个话题,我也看到网上有其他方法来解决. 不过从性能和代码量上来看,我有更好的办法. 在这里和大家 分享. 原理其实很简单, 知识1.长度函数 len(): 知识2.还是长度函数datalength(): 代码如下: 复制代码 代码如下: declare @sql varchar(1000) set @sql='abc国m,de中d国e人民f' select @sql 字符,DATALENGTH(@sql)-len(@sql) 汉字个数

  • SQL截取字符串函数分享

    A.截取从字符串左边开始N个字符 Declare @S1 varchar(100) Select @S1='http://www.xrss.cn' Select Left(@S1,4) ------------------------------------ 显示结果: http B.截取从字符串右边开始N个字符(例如取字符www.163.com) Declare @S1 varchar(100) Select @S1='http://www.163.com' Select right(@S1,

随机推荐