Удаление строки из @

#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]);