Ios NSString大写字符串,罗马数字除外
我正在开发一个应用程序,其中用户名打印在UILabel中。我正在对提供给UILabel的字符串调用NSString的Ios NSString大写字符串,罗马数字除外,ios,objective-c,nsstring,nsregularexpression,Ios,Objective C,Nsstring,Nsregularexpression,我正在开发一个应用程序,其中用户名打印在UILabel中。我正在对提供给UILabel的字符串调用NSString的capitalizedString方法(以便将用户的名字、中间名和姓氏大写)。以下是一些代码供参考: cell.textLabel.text = [theUsersName capitalizedString]; 我的问题是我遇到了一个名字中有罗马数字的用户。罗马数字是这样大写的:“Iii” 我的问题是,如何在保持大写字符串功能的同时,检测罗马数字并将其放入所有大写字母(III)
capitalizedString
方法(以便将用户的名字、中间名和姓氏大写)。以下是一些代码供参考:
cell.textLabel.text = [theUsersName capitalizedString];
我的问题是我遇到了一个名字中有罗马数字的用户。罗马数字是这样大写的:“Iii”
我的问题是,如何在保持大写字符串
功能的同时,检测罗马数字并将其放入所有大写字母(III)中。正则表达式是我唯一的选择吗
编辑
我决定用正则表达式来解决这个问题。然而,我在实现上遇到了困难。我不太熟悉使用NSRegularExpression,所以有人可以帮助解决此问题的算法,并指出一些有用的方法吗?在一般情况下,您可能无法-
Vi
是一个名称,Vi
是一个数字,对吗<代码>Li。您的程序是否处理内部大写的名称?我妻子的名字是这样的,她讨厌像你这样破坏她正确输入的大写字母的程序。正则表达式?正则表达式怎么了?()@CarlNorum-是的,你说得对。“我没有想到这点。”达斯宾莱特-我很懒。哈,但如果必要的话,我会追求正则表达式。谢谢你的链接@hw731 SO的搜索对象是懒惰(我是说,聪明)的人,他们不想为了重复别人的成功而重复别人的成功。答案有一个完全有效的正则表达式。在区分大小写的模式下应用它,找到不能触摸的地方,将字符串大写,并将数字部分从原始部分复制回来。这就是一个懒惰的人会做的,对吗?