如何有选择地修剪NSMutableString?

时间:2011-09-10 08:07:59

标签: iphone objective-c substring nsmutablestring

我想知道如何有选择地修剪NSMutableString。例如,如果我的字符串是“MobileSafari_2011-09-10-155814_Jareds-iPhone.plist”,我将如何以编程方式修剪除“MobileSafari”之外的所有内容?

注意:鉴于上面的术语以编程方式,我希望解决方案能够工作,即使单词“MobileSafari”更改为“Youtube”,或者单词“贾里德的iPhone”改为“安吉拉的iPhone”。

非常感谢任何帮助!

5 个答案:

答案 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是否适合你。