如何将 nsurl 的主机转换为小写

how to convert host of nsurl to lowercase

假设我有 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

感谢任何线索。

  1. 将字符串转换为小写。
  2. 然后将转换后的字符串值传递给componentsWithString方法。

示例: NSString *lowerCaseStringValue = [_textfield.text lowercaseString]; [NSURLComponents componentsWithString: lowerCaseStringValue];

正如@Larme 建议您可以使用方法在 url

中设置主机

见下例

NSURLComponents *components = [NSURLComponents componentsWithString: @""]; 
[components setHost:[components.host lowercaseString] ]; 
NSLog(@"%@",components.URL)

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


注意:

http:// 需要在 String 中添加,否则你将得到 host nil 例如 https://www.whosebug.com/questions/47924276/how-to-convert-host-of-nsurl-to-lowercase 它会工作

www.whosebug.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