#iphone #objective-c #nsstring
#iPhone #objective-c #nsstring
Вопрос:
NSString *string=@"test1@sdk.com";
Теперь я хочу удалить все символы строки из @, которые приводят к «test1».
Пожалуйста, подскажите мне, как это сделать.
Заранее спасибо!!
Ответ №1:
Вы могли бы использовать метод
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target
withString:(NSString *)replacement
Итак, ваш код должен быть таким, как показано ниже.
string = [string stringByReplacingOccurrencesOfString:@"sdk.com" withString:@""];
ОТРЕДАКТИРОВАНО:
Использовать componentsSeparatedByString
метод,
NSArray* myArray = [string componentsSeparatedByString:@"@"];
Теперь ваш массив содержит ровно два компонента,
NSMutableString* myStringBefore = [myArray objectAtIndex:0];
если вы все еще хотите , чтобы @ было в конце вашей строки ..
[myStringBefore appenString:@"@"];
Комментарии:
1. эта строка — всего лишь пример того, что я должен сделать, это может быть testabc@gmail.com . Итак, решение должно быть общим
2. Я нашел решение int range=[string rangeOfString:@»@»].location; NSLog(@»%d», диапазон); NSLog(@»% @»,[string substringToIndex:диапазон]);
Ответ №2:
Вы можете использовать substringToIndex
string = [ string substringToIndex:5 ] ;
// If @ location is subject to change, then first find it's location index and
// pass it.
Ответ №3:
NSMutableString *string1 = [NSMutableString stringWithString: @"test1@sdk.com"];
NSArray* arr = [string1 componentsSeparatedByString:@"@"];
[string1 deleteCharactersInRange: [string1 rangeOfString: [NSString stringWithFormat:@"@%@",[arr objectAtIndex:1]]]];
Комментарии:
1. Почему не просто
[[theString componentsSeparatedByString:@"@"] objectAtIndex:0]
? Нет необходимости в изменяемой строке.
Ответ №4:
int range=[string rangeOfString:@"@"].location;
NSLog(@"%d",range);
NSLog(@"%@",[string substringToIndex:range]);