iOS-如何返回某个字符串的拼音助记码

我也是看了网上的一个示例代码后,在它的基础上进行的修改。因为项目上会用到,我相信很多人的项目上也会用到。所以实现后,也赶紧分享出来,希望后来人不需要花费时间了。

提示:这里用到了正则表达式,使用了一个第三方开源的组件:RegexKitLite (该组件如何使用网上教程很多)

#pragma mark - 获取拼音首字母(传入汉字字符串, 返回小写拼音首字母)

+(NSString *)pinYingFirstCharactorStr:(NSString *)aString

{

//转成了可变字符串

NSMutableString *str = [NSMutableString stringWithString:aString];

//先转换为带声调的拼音

CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);

//再转换为不带声调的拼音

CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);

//转化为小写拼音

NSString *pinYin = [str lowercaseString];

//根据指定的正则表达式将拼音字串转换成各个子字符串数组

NSString *regexString = @"\\s";  //使用的拆分间隔的正则符号是空格

NSArray* aArray=[pinYin componentsSeparatedByRegex:regexString];  //进行拆分

//遍历字符串数组,拼接首字母

NSString* strReturn;

NSString* strProc = @"";

for (int i=0; i<aArray.count; i++) {

//针对子串可能有数字进一步处理

NSString* strTmp=[CRGOtherHelper firstReplaceInNumberStr:aArray[i]];

strReturn=[strProc stringByAppendingString:strTmp];

strProc=strReturn;

}

//获取并返回首字母

return strReturn;

}

//对传入的字符串进行按数字间隔拆分到一个新的子数组中,对子数组中的非空成员取首字母得到一个临时字符。

//然后用这个临时字符去替换原有的数组成员中的字符串的对应部分(查找方式是比对先前拆分的成员)

+(NSString*)firstReplaceInNumberStr:(NSString*)waitProcStr

{

NSString* strResult=nil;

NSString* strWait=[[waitProcStr copy] autorelease];

//找字符串

NSString *[email protected]"[0-9]";

//进一步拆分成子串数组

NSArray* strArray=[waitProcStr componentsSeparatedByRegex:regexString];  //进行拆分

NSArray* strCopy=[strArray copy];

for (int j=0; j<strArray.count; j++) {

if (![(NSString*)strArray[j] isEqualToString:@""])

{

//取首字母

NSString* fistChar=[strArray[j] substringToIndex:1];

//部分替换

strResult=[strWait stringByReplacingOccurrencesOfRegex:strCopy[j] withString:fistChar];

strWait=strResult;

}

}

return strResult;

}

希望大家能用得上!

时间: 2024-11-08 20:13:56

iOS-如何返回某个字符串的拼音助记码的相关文章

汉字助记码,你会了吗?

汉字助记码,你会了吗? 在编程中,我们经常会遇到汉字助记码的问题,笔者曾经为此多次发愁,现总结前辈的好东西,记录于此,希望能帮助到您,方法有多种,在此比较几种方案,简单剖析一下. 首先说明,什么是汉字助记码?所谓的汉字助记码就是一个汉字的拼音的首字母,如:张的汉字助记码为Z,湖北中医药大学的助记码为HBZYYDX.下面通过程序用三种方法实现: 方法一:表获取方法; 表内容大致说明:       实现核心代码--SQL标量值函数: 1 -------------------------------

助记码的全部更新

需要的两个函数: USE [oaerp] GO /****** Object:  UserDefinedFunction [dbo].[f_ch2py]    Script Date: 12/31/2014 17:12:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER function [dbo].[f_ch2py](@chn nchar(1)) returns char(1) as begin declare @

升级7.2后科目表重复,助记码后缀多了重复值_1

问题解决办法1.先备份科目select * into t_bd_account_1125 from T_BD_ACCOUNT 2.查出问题凭证select distinct b.FNUMBER as 帐簿编码,v.FYEAR as 年度,v.FPERIOD as 期间,g.FNAME as 凭证字, v.FVOUCHERGROUPNO as 凭证号 from T_GL_VOUCHERENTRY ve inner join T_GL_VOUCHER v on v.FVOUCHERID=ve.FVO

1.16. BIP39协议:使用助记词生成确定性钱包

以太坊系统学习教程: https://www.netkiller.cn/blockchain/bip39.html BIP:39 层:应用层 标题:使用助记词生成确定性钱包秘钥 作者:Marek Palatinus [email protected] Pavol Rusnak [email protected] Aaron Voisine [email protected] Sean Bowe [email protected] 状态:已经被提议 类型:标准化跟踪 创建日期:2013-09-10

传入一个中文字符串,返回一个字符串中的中文拼音

/** * @param 传入一个中文字符串 * @return 返回一个字符串中的中文拼音 */ private String getNameNum(String name) { if (!Utils.isStrEmpty(name)) { int len = name.length(); char[] nums = new char[len]; for (int i = 0; i < len; i++) { String tmp = name.substring(i); nums[i] =

iOS获取字符串的拼音

//获取字符串的拼音 - (NSString *)phonetic { NSString *str = [self stringByReplacingOccurrencesOfString:@"-" withString:@" "]; NSMutableString *source = [str mutableCopy]; CFStringTransform((__bridge CFMutableStringRef)source, NULL, kCFStringTr

ios 汉字字符串数组拼音排序

ios没有提供简单的汉字拼音排序方法,在网上看到了oc方法,这里写以下对应的swift方法 var stringCompareBlock: (String,String)->Bool = { (str1:String, str2:String) -> Bool in var nsStr1 = str1 as NSString var nsStr2 = str2 as NSString var encode:NSStringEncoding = CFStringConvertEncodingTo

MySQL通过函数获取字符串汉字拼音首字母大写字符串

DELIMITER $$ DROP FUNCTION IF EXISTS `Fun_GetPY`$$ CREATE FUNCTION `HIS`.`Fun_GetPY` (in_string VARCHAR(21845)) RETURNS VARCHAR(21845) CHARSET utf8 BEGIN #截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值 DECLARE tmp_str VARCHAR(21845) CHARSET gbk DEFAULT ''

SpringMVC返回json字符串(非注解方式)

这里采用的是非注解形式,相当于注解中的@responseBody /**      * 根据字符串输出JSON,返回null      *       * @param jsonString      * @return      */     public String ajaxJson(HttpServletResponse response,String jsonString) {        return ajax(response,jsonString, "text/html&quo