2013-03-11 30 views
14

ho una stringa "ciao come sei ... tu"Come trovare la sottostringa tra due stringhe?

voglio trovare il sub-stringa dopo how e prima di voi ..

come farlo in Objective C?

+5

Cosa hai provato? O stai controllando se qualcuno lo sa? –

+3

Hai cercato prima di chiedere? Che cosa hai provato? –

+0

ho controllato e ho provato alcuni metodi per non funzionare .. – Raju

risposta

77

trovare la gamma delle due stringhe e riportare il sottostringa tra:

NSString *s = @"hi how are... you"; 

NSRange r1 = [s rangeOfString:@"how"]; 
NSRange r2 = [s rangeOfString:@"you"]; 
NSRange rSub = NSMakeRange(r1.location + r1.length, r2.location - r1.location - r1.length); 
NSString *sub = [s substringWithRange:rSub]; 
+4

Mi sono sentito triste nel vederti rispondere per questa domanda infantile. Hai uno standard qui. dovresti lasciare queste domande ai giovani StackOverFlowers;) –

+13

@AnoopVaidya È ugualmente triste che questi giovani impilati siano riusciti a dare risposte sbagliate o prive di significato/incomplete. –

+0

@ H2CO3: grazie per il tuo aiuto, ma mostrando subString = (null) .. quello che sto facendo è che sto prendendo una pagina html e trovando una sottostringa .. ma quando vedo la pagina html mostra la stringa e se uso Qualunque metodo di ricerca della sottostringa mostra "nulla" .. quale potrebbe essere il problema per favore, dimmi .. – Raju

0

utilizzare SubstringTOIndex & SubstringFromIndex funzioni di NSString. Dove SubstringFromIndex ti dà il string dall'indice che hai passato & SubstringToIndex la funzione ti dà il string fino all'indice che hai passato.

Prova anche la funzione substringWithRange che ti restituisce lo string nell'intervallo superato.

+2

Non c'è niente in questa risposta che spiega come trovare gli intervalli necessari. – rmaddy

+0

@rmaddy Ho appena indicato i nomi delle funzioni che sono utili per ottenere la sottostringa. Usando queste funzioni, possiamo ottenere la sottostringa, quindi non c'è bisogno di fornire la risposta dettagliata. – Girish

+0

Il punto è trovare gli indici in fase di esecuzione. Usando solo i metodi che proponi richiederà che l'indice sia hardcoded. Se fosse tutto ciò che doveva essere fatto allora non ci sarebbe stata una domanda. – rmaddy

-1

Usa substringWithRange ...

NSString* substring = [originalString substringWithRange:NSMakeRange(3, originalString.length-6)]; 
9

Si potrebbe utilizzare il metodo di NSString substringWithRange

Esempio

NSString *[email protected]"hi how are you"; 
NSRange searchFromRange = [string rangeOfString:@"how"]; 
NSRange searchToRange = [string rangeOfString:@"you"]; 
NSString *substring = [string substringWithRange:NSMakeRange(searchFromRange.location+searchFromRange.length, searchToRange.location-searchFromRange.location-searchFromRange.length)]; 
NSLog(@"subs=%@",substring); //subs= are