Как выборочно обрезать NSMutableString? - PullRequest
0 голосов
/ 10 сентября 2011

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

Примечание: Учитывая термин программно выше, я ожидаю, что решение будет работать, даже если слово «MobileSafari» будет изменено на «Youtube», например, или слово «Джаред -iPhone "заменено на" Анжела-iPhone ".

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

Ответы [ 5 ]

2 голосов
/ 10 сентября 2011

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

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

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

1 голос
/ 10 сентября 2011

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

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

1 голос
/ 10 сентября 2011

ИСПЫТАННЫЙ КОД: 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
1 голос
/ 10 сентября 2011

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

Просто используйте документально 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.

0 голосов
/ 10 сентября 2011

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

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

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

...