Как я могу удалить строку перед "#"? - PullRequest
1 голос
/ 08 апреля 2011

Есть строка.

NSString * test = @ "1997 # test"

Я хочу удалить строку перед "#".
И это меняется так:

NSString * test = @ "test"

Можете ли вы мне помочь?

Ответы [ 6 ]

3 голосов
/ 08 апреля 2011

Использование стандартных NSString API методов:

NSString* test = @"1997#test";
NSArray* parts = [test componentsSeparatedByString:@"#"];
NSString* result = [parts count] > 1 ? [parts objectAtIndex: 1] : [parts objectAtIndex: 0];

Или, если это слишком тупо (что лично мне так кажется), вы можете использовать категорию NSString + JavaAPI и затем сделать:

NSString* test = @"1997#test";
NSString* result = [test substringFromIndex: [test indexOf:@"#"] + 1];
2 голосов
/ 08 апреля 2011

Техническое удаление строки до # оставит вас с "#test".

В любом случае, используйте - [NSString componentsSeparatedByString:]:

test = [[test componentsSeparatedByString:@"#"] lastObject];

Обратите внимание, что этот подход хрупок: если у вас есть 2 #, вы получите только последнюю часть, например, "foo" из "abc # bar # foo".

Использование lastObject вместо objectAtIndex: означает, что если в строке нет #, вместо исходной строки вы получите исходную строку.

1 голос
/ 09 апреля 2011

Не говорю, что это лучше, чем другие способы, но мне было любопытно посмотреть, смогу ли я сделать это без componentsSeparatedByString и objectAtIndex .

NSString* oldString = @"1976#test";
int stringLocation = [oldString rangeOfString:@"#" ].location +1 ;
NSString* newString =[oldString substringWithRange: NSMakeRange (stringLocation,[oldString length] -  stringLocation )];
0 голосов
/ 08 апреля 2011

NSString * test = @ "Chetan # iPhone # test";

NSArray * stringComponents = [test componentsSeparatedByString: @ "#"];

для (int i = 0; i <[stringComponents count]; i ++) </p>

{

 NSString *test = [stringComponents objectAtIndex:i];

 if ([test isEqualToString:@"test"] == true)

 {

      NSLog(@"found");

      break;

 }

}

0 голосов
/ 08 апреля 2011

Если в строке будет только один хеш-символ, вы можете просто использовать метод NSString componentsSeparatedByString, чтобы вернуть массив, а затем просто вставить первый элемент массива встрока.

Например:

NSString *test = @"1997#test";
NSArray *stringComponents = [test componentsSeparatedByString:@"#"];
NSString *test = [stringComponents objectAtIndex:1];
0 голосов
/ 08 апреля 2011
NSArray *components=[test componentsSeparatedByString:@"#"];
NSString *test=[components objectAtIndex:1];

вам это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...