Как выборочно обрезать NSMutableString?

Я хотел бы знать, как выборочно обрезать NSMutableString. Например, если моей строкой является "MobileSafari_2011-09-10-155814_Jareds-iPhone.plist", как мне программно обрезать все, кроме слова "MobileSafari"?

Примечание. Учитывая указанный выше программный термин, я ожидаю, что решение будет работать, даже если слово "MobileSafari" будет изменено на "Youtube", например, или слово "Jared's-iPhone" будет заменено на "Angela's-iPhone".

Любая помощь очень ценится!

5 ответов

Решение

ИСПЫТАННЫЙ КОД: 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

Учитывая, что вам всегда нужно извлечь символ до первого подчеркивания; используйте следующий метод;

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

Первым объектом в массиве будет извлеченная часть, которая вам нужна, я думаю.

Если вы знаете, что формат строки всегда такой, это может быть легко.

Просто используйте NSString componentsSeparatedByString: задокументировано здесь.

В вашем случае вы можете сделать это:

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.

Попробуй это:

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, он будет работать.

Поэтому вам понадобится переменная NSString, которая будет содержать начало строки, которую вы хотите обрезать. После этого одним из способов может быть одновременное изменение строки и значений строки переменной. Скажем, переменная строка была "Youtube", а не изменена на "MobileSafari", тогда изменяемая строка должна измениться с "MobileSafari_....." на "YouTube_......". И тогда вы можете получить переменную длину строки и использовать следующий код для усечения изменяемой строки.

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

Посмотри, работает ли это для тебя.

Другие вопросы по тегам