Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了能够保存在文件中外,还能够保存到URL中,保存到URL中能够不用浪费设备的空间,固然也能够将URL中的内容读取出来,并转换为字符串。首先咱们来看如何将字符串中的字符写入到URL中,要想实现此功能,须要使用到NSString中的write(to:atomically:encoding:)方法,其语法形式以下:html
func write(to url: URL, atomically useAuxiliaryFile: Bool, encoding enc: UInt) throwsapp
其中,参数说明以下:ui
【示例1-102】如下将字符串的字符写入到URL中。编码
import Foundationatom
var str=NSString(string:"One is always on a strange road, watching strange scenery and listening to strange music. Then one day, you will find that the things you try hard to forget are already gone. ")url
var path="/Users/mac/Desktop/File"spa
var url=URL(fileURLWithPath:path)orm
//写入htm
do{blog
try str.write(to: url, atomically: true, encoding: String.Encoding.ascii.rawValue)
}catch{
}
运行效果如图1.5所示。
图1.5 运行效果
NSString能够将字符保存到URL中,还能够将URL中的内容读取出来,并转换为字符串,其此时须要使用到NSString中的init(contentsOf:encoding:)方法,其语法形式以下:
convenience init(contentsOf url: URL, encoding enc: UInt) throws
其中,url用来指定URL,enc用来指定编码格式。
【示例1-103】如下将读取URL中的内容。
import Foundation
var url=URL(string:"http://www.baidu.com")
var str:NSString?=nil
//读取内容
do{
str=try NSString(contentsOf: url!,encoding: String.Encoding.ascii.rawValue)
}catch{
}
print(str!)
运行结果以下:
<html>
<head>
<script>
location.replace(location.href.replace("https://","http://"));
</script>
</head>
<body>
<noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>
</body>
</html>
在此代码中url指定的"http://www.baidu.com中的内容。
在上文中咱们提到的转换都是针对英文进行的常见转换,可是若是咱们想要将简体中文转为转换为拉丁字符,或者是其余,使用上文中提到的转换是不可行的,在NSString中提供了一个applyingTransform(_:reverse:)方法,为咱们解决了这一问题,它能够实现自由转换的功能,其语法形式以下:
func applyingTransform(_ transform: StringTransform, reverse: Bool) -> String?
其中,transform用来设置指定一个StringTransform常量,reverse用来设置字符串是否可逆。
【示例1-104】如下将简体中文汉字转码成拉丁字母中的汉语拼音表示。
import Foundation
let shanghai="上海"
print(shanghai.applyingTransform(StringTransform.toLatin, reverse: false)!) //转换
运行结果以下:
shàng hǎi