Как преобразовать хост из 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
- Преобразовать строку в нижний регистр.
- Затем передайте преобразованное строковое значение методу componentWithString.
Пример: NSString *lowerCaseStringValue = [_textfield.text lowercaseString]; [NSURLComponents componentsWithString: lowerCaseStringValue];