Как найти и получить URL-адрес в строке NSString в iPhone? - PullRequest
1 голос
/ 29 декабря 2011

У меня есть текст с http: // в NSString.Я хочу получить эту ссылку http из строки NSString.Как я могу получить ссылку / URL из строки?Например: 'Stack over flow - очень полезная ссылка для начинающих https://stackoverflow.com/'. Я хочу получить' https://stackoverflow.com/' из текста.Как я могу это сделать?Заранее спасибо.

Ответы [ 3 ]

8 голосов
/ 29 декабря 2011

Я не уверен, что именно вы подразумеваете под ссылкой, но если вы хотите конвертировать NSString в NSURL, вы можете сделать следующее:

NSString *urlString = @"http://somepage.com";
NSURL *url = [NSURL URLWithString:urlString];

РЕДАКТИРОВАТЬ

Вот как получить все URL в данной строке NSString:

NSString *str = @"This is a grate website http://xxx.xxx/xxx you must check it out"; 

NSArray *arrString = [str componentsSeparatedByString:@" "];

for(int i=0; i<arrString.count;i++){
    if([[arrString objectAtIndex:i] rangeOfString:@"http://"].location != NSNotFound)
        NSLog(@"%@", [arrString objectAtIndex:i]);
}
4 голосов
/ 29 декабря 2011

Вместо того, чтобы разбивать строку на массив и возиться с этим, вы можете просто найти подстроку, начинающуюся с @ "http://":

NSString *str = @"Stack over flow is very useful link for the beginners http://stackoverflow.com/";
// get the range of the substring starting with @"http://"
NSRange rng = [str rangeOfString:@"http://" options:NSCaseInsensitiveSearch];

// Set up the NSURL variable to hold the created URL
NSURL *newURL = nil;

// Make sure that we actually have found the substring
if (rng.location == NSNotFound) {
    NSLog(@"URL not found");
    // newURL is initialised to nil already so nothing more to do.
} else {
    // Get the substring from the start of the found substring to the end.
    NSString *urlString = [str substringFromIndex:rng.location];

    // Turn the string into an URL and put it into the declared variable
    newURL = [NSURL URLWithString:urlString];
}
1 голос
/ 29 декабря 2011

попробуйте это:

nsstring *str = @"Stack over flow is very useful link for the beginners http://stackoverflow.com/";

nsstring *http = @"http";
nsarray *arrURL = [str componentsSeparatedByString:@"http"];

это даст два объекта в nsarray. 1-й объект будет иметь: Stack over flow is very useful link for the beginners, а 2-й будет: ://stackoverflow.com/ (я думаю)

тогда вы можете сделать как:

  NSString *u = [arrURL lastObject];

тогда сделайте как:

nsstring *http = [http stringByAppendingFormat:@"%@",u];

Довольно долго, но я думаю, что это сработало бы для вас. Надеюсь, это поможет вам.

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