45 Stimmen

Objective-C: Beste Weg, um Teilstring aus NSString zu extrahieren?

Ich habe eine durch Leerzeichen getrennte Zeichenfolge wie @"abc xyz http://www.example.com aaa bbb ccc" .

Wie kann ich die Teilzeichenkette extrahieren @"http://www.example.com" von ihr?

59voto

Justin Punkte 2072

Ich weiß, dies ist eine sehr späte Antwort, aber Sie können die Teilzeichenkette "http://www.abc.com" mit dem folgenden Code erhalten:

[@"abc xyz http://www.abc.com aaa bbb ccc" substringWithRange:NSMakeRange(8, 18)]

Natürlich können Sie auch eine NSString dafür.

0 Stimmen

Es scheint nicht zu funktionieren, wenn meine Saite kürzer ist als der Bereich. Was kann ich dann tun?

2 Stimmen

Sie geben ihm einfach einen anderen Bereich. Am besten ist es, die Länge zu überprüfen [@"Some string" length] und addiere diese Zahl zur ersten, um die zweite zu finden.

30voto

Pach Punkte 851

Versuchen Sie dies:

       [yourString substringToIndex:<#(NSUInteger)#>];
//or
      [yourString substringFromIndex:<#(NSUInteger)#>];
//or        
      [yourString substringWithRange:<#(NSRange)#>];

12voto

Morion Punkte 9351

Wenn alle Teilzeichenfolgen durch Leerzeichen getrennt sind, können Sie versuchen, ein Array von Teilzeichenfolgen zu erhalten, indem Sie [myString componentsSeparatedByString:@" "] . Dann können Sie das Ergebnis der [NSUrl URLWithString:yourSubstring] . Sie gibt null zurück, wenn die Teilzeichenkette keine korrekte Verknüpfung ist.

0 Stimmen

Vielleicht haben Sie mich missverstanden oder ich habe Sie missverstanden, aber abc.com ist nur ein Beispiel. Was ich meine, ist, wie man eine Teilzeichenkette haben Format eines url-Links aus dem NSString zu erhalten. Ich warte auf Ihre Antwort

0 Stimmen

Hmm... NSArray* subStrings = [yourString componentsSeparatedByString:@" "]; for(NSString* subString in subStrings){ if([NSUrl URLWithString: subString]){ NSLog(@"Dieser Teilstring ist eine URL: %@", subString); } }

0 Stimmen

Wenn Ihre Teilstrings durch @" " getrennt sind, werden in der Konsole alle Teilstrings angezeigt, die korrekte URLs sind.

5voto

rckehoe Punkte 1188

Hier ist meine Version des Skripts... Hoffentlich ist es sauber und einfach zu implementieren. Es macht ein substr der Zeichen auf der Grundlage der Grenzen... Meines wird für eine Textarea verwendet, kann aber natürlich an Textfelder angepasst werden :)

 -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
 {

      int maxLength = 100;
      int currentLength = [self.messageField.text length];

      if( currentLength > maxLength )
      {

           NSString *newMessageText = [self.messageField.text substringWithRange:NSMakeRange(0, maxLength)];

           [self.messageField setText:newMessageText];

           return NO;

     }
     else
     {

           return YES;

     }

 }

2voto

user1873574 Punkte 93

Damit kann auch versucht werden, dieses Problem zu lösen:

NSArray  *data = [@"abc xyz http://www.abc.com aaa bbb ccc" componentsSeparatedByString:@" "];

for(NSString* str in data)
{
    if([NSURLConnection canHandleRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]])
        NSLog(@"%@",[[NSString alloc ] initWithFormat:@"Found a URL: %@",str]);
}

Hoffentlich hilft das!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X