我想知道如何有选择地修剪NSMutableString。例如,如果我的字符串是“MobileSafari_2011-09-10-155814_Jareds-iPhone.plist”,我将如何以编程方式修剪除“MobileSafari”之外的所有内容?
注意:鉴于上面的术语以编程方式,我希望解决方案能够工作,即使单词“MobileSafari”更改为“Youtube”,或者单词“贾里德的iPhone”改为“安吉拉的iPhone”。
非常感谢任何帮助!
答案 0 :(得分:2)
鉴于你总是需要将角色提取到第一个下划线;使用以下方法;
NSArray *stringParts = [yourString componentsSeparatedByString:@"_"];
数组中的第一个对象是你想要的提取部分。
答案 1 :(得分:1)
如果您知道字符串的格式总是那样,那就很容易。
只需使用NSString的componentsSeparatedByString:
文档here。
在你的情况下,你可以这样做:
NSString *source = @"MobileSafari_2011-09-10-155814_Jareds-iPhone.plist";
NSArray *seperatedSubStrings = [source componentsSeparatedByString:@"_"];
NSString *result = [seperatedSubStrings objectAtIndex:0];
@"MobileSafari"
位于索引0,@"2011-09-10-155814"
位于索引1,@"Jareds-iPhone.plist"
位于索引2。
答案 2 :(得分:1)
测试代码:100%工作
NSString *inputString=@"MobileSafari_2011-09-10-155814_Jareds-iPhone.plist";
NSArray *array= [inputString componentsSeparatedByString:@"_"];
if ([array count]>0) {
NSString *resultedString=[array objectAtIndex:0];
NSLog(@" resultedString IS - %@",resultedString);
}
<强>输出:强>
resultedString IS - MobileSafari
答案 3 :(得分:1)
试试这个:
NSString *strComplete = @"MobileSafari_2011-09-10-155814_Jareds-iPhone.plist";
NSArray *arr = [strComplete componentsSeparatedByString:@"_"];
NSString *str1 = [arr objectAtIndex:0];
NSString *str2 = [arr objectAtIndex:1];
NSString *str3 = [arr objectAtIndex:2];
str1 是必填字符串 即使您将 MobileSafari 更改为 youtube 也可以。
答案 4 :(得分:0)
所以你需要一个NSString变量来保存你要截断的字符串的开头。之后,一种方法可能是同时更改字符串和变量字符串值。比方说,变量字符串是“Youtube”而不是更改为“MobileSafari”,然后可变字符串字符串应该从“MobileSafari _.....”更改为“YouTube _......”。然后你可以获得变量字符串长度并使用以下代码来截断可变字符串。
NSString *beginningOfTheStr;
.....
theMutableStr=[theMutableStr substringToIndex:[beginningOfTheStrlength-1]];
看看tis是否适合你。