Swift3.0语言教程字符串与URL的数据转换与自由转换
Swift3.0语言教程字符串与URL的数据转换
Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以保存在文件中外,还可以保存到URL中,保存到URL中可以不用浪费设备的空间,当然也可以将URL中的内容读取出来,并转换为字符串。首先我们来看如何将字符串中的字符写入到URL中,要想实现此功能,需要使用到Nsstring中的write(to:atomically:encoding:)方法,其语法形式如下:
func write(to url: URL,atomically useAuxiliaryFile: Bool,encoding enc: UInt) throws
其中,参数说明如下:
- url:用来指定URL。
- useAuxiliaryFile:用来指定是否将在字符串写入其他地方,当确认写入成功以后,系统才把些的字符串保存到指定位置
- enc:用来指定编码格式。
【示例1-102】以下将字符串的字符写入到URL中。
import Foundation 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. ") var path="/Users/mac/Desktop/File" var url=URL(fileURLWithPath:path) //写入 do{ 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 varurl=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中的内容。
Swift3.0语言教程自由转换
在上文中我们提到的转换都是针对英文进行的常见转换,但是如果我们想要将简体中文转为转换为拉丁字符,或者是其他,使用上文中提到的转换是不可行的,在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
Swift3.0语言教程字符串与URL的数据转换与自由转换
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。