0

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

注意:鉴于上述以编程方式使用的术语,我希望即使将“MobileSafari”一词更改为“Youtube”,或者将“Jared's-iPhone”一词更改为“Angela's-iPhone”,该解决方案也能正常工作。

很感谢任何形式的帮助!

4

5 回答 5

2

鉴于您总是需要将字符提取到第一个下划线;使用以下方法;

NSArray *stringParts = [yourString componentsSeparatedByString:@"_"];

我认为数组中的第一个对象将是您需要的提取部分。

于 2011-09-10T08:20:02.040 回答
1

如果您知道字符串的格式总是这样,那就很容易了。

只需使用此处componentsSeparatedByString:记录的 NSString 即可。

在您的情况下,您可以这样做:

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。

于 2011-09-10T08:20:00.557 回答
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
于 2011-09-10T08:20:34.567 回答
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,它也可以工作。

于 2011-09-10T08:22:32.563 回答
0

所以你需要一个 NSString 变量来保存你想要截断的字符串的开头。之后,一种方法可能是同时更改字符串和变量字符串值。比如说,变量字符串是“Youtube”而不是更改为“MobileSafari”,那么可变字符串应该从“MobileSafari_.....”更改为“YouTube_......”。然后您可以获得可变字符串长度并使用以下代码截断可变字符串。

NSString *beginningOfTheStr;
.....
theMutableStr=[theMutableStr substringToIndex:[beginningOfTheStrlength-1]]; 

看看 tis 是否适合你。

于 2011-09-10T08:19:56.050 回答