Как преобразовать хост из nsurl в нижний регистр

Допустим, у меня есть www.GOOgle.com/.......

Я хочу изменить его на www.google.com/....

и сохранить оставшуюся часть URL как есть.

Я пробовал с NSURLComponents, но это не сработало.

// I am taking input from textfield and making the nsurl.

 NSURLComponents *components = [NSURLComponents componentsWithString: _textfield.text]; // input from textfield
[[components host] lowercaseString];
 NSURL *urlin = [components URL]; //but this gives, www.GOOgle.com

Любое лидерство ценится.

3 ответа

Решение

Как @Larme предлагает вы можете использовать метод для setHost в URL

см. пример ниже

NSURLComponents *components = [NSURLComponents componentsWithString: @"https://sTackoverFlow.com/questions/47924276/how-to-convert-host-of-nsurl-to-lowercase"]; 
[components setHost:[components.host lowercaseString] ]; 
NSLog(@"%@",components.URL)

H ttps: //stackru.com/questions/47924276/how-to-convert-host-of-nsurl-to-lowercase


НОТА:

http: // требуется для добавления в String, иначе вы получите nil хоста, например /questions/17058594/kak-preobrazovat-host-iz-nsurl-v-nizhnij-registr это будет работать

в то время как

www.sTackoverFlow.com/questions/47924276/how-to-convert-host-of-nsurl-to-lowercase

Не будет работать

Если ваша строка только URL, вы можете попробовать это,

let strURL = "http://GOogLe.Com/Testt/xyz"
let url = NSURL(string: strURL)
let domain: String = (url?.host)! //get your host name
print(domain) //GOogLe.Com

let str = strURL.replacingOccurrences(of: domain, with: domain.lowercased())
print(str) //http://google.com/Testt/xyz
  1. Преобразовать строку в нижний регистр.
  2. Затем передайте преобразованное строковое значение методу componentWithString.

Пример: NSString *lowerCaseStringValue = [_textfield.text lowercaseString]; [NSURLComponents componentsWithString: lowerCaseStringValue];

Другие вопросы по тегам