我正在iOS / Swift中读取.txt文件。我从文本文件中获取了所有信息。问题是我只想获取用户名并将它们存储在一个数组中。现在我认为它将来自.txt文件的所有数据存储在一个字符串中。我怎样才能正确解析这个,所以我只有数组中的用户名?
这是我现在的代码
if let filepath = NSBundle.mainBundle().pathForResource("myfile", ofType: "txt") {
do {
let contents = try NSString(contentsOfFile: filepath, usedEncoding: nil) as String
print(contents)
} catch {
// contents could not be loaded
}
} else {
print("UNABLE TO FIND TEXT FILE");
}
我的文字文件格式:
User FirstName LastName
asf john smith
adfkh carrie underwood
答案 0 :(得分:0)
这是使用高阶函数的解决方案。希望这适合你。
let text = "tj thomas jeffereson \nbf benjamin franklin\ngw george washington"
let usernames = text.characters
.split { $0 == "\n" }
.map { String($0) }
.map { String($0.characters.split(" ")[0]) }
print(usernames)
输出:
["tj", "bf", "gw"]
循环结果:
for user in usernames {
print(user)
}
答案 1 :(得分:0)
编辑:使用.plist文件添加解决方案
一种方法是,您可以将信息存储到.plist文件中。
然后您可以将用户名存储到数组中。
if let path = NSBundle.mainBundle().pathForResource("UserInformation", ofType: "plist") {
if let data = NSArray(contentsOfFile: path) {
let userName = NSMutableArray.init(capacity: 1)
for dict in data {
userName.addObject(dict.valueForKey("User")!)
}
// Now user names are stored into a array
}
}
另一种方法是,您也可以将信息存储到本地.json文件中,尽管JSON通常用于客户端和服务器之间的通信。
表格iOS5,Apple提供了支持解析JSON的API。
使用您喜欢的任何文本编辑器创建一个包含以下内容的json文件,并使用名称UserInfo.json保存它(您可以用您喜欢的任何名称替换UserInfo。)
[
{ "User":"asf", "FirstName":"john", "LastName":"smith"},
{ "User":"adfkh", "FirstName":"carrie", "LastName":"underwood"}
]
将其添加到您的项目中。
现在您可以将用户名存储到数组中。
if let path = NSBundle.mainBundle().pathForResource("UserInfo", ofType: "json") {
if let data = NSData(contentsOfFile: path) {
do {
let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers ) as! NSMutableArray
let userName = NSMutableArray.init(capacity: 1);
for dict in jsonData {
userName.addObject(dict.valueForKey("User")!)
}
// Now user names are stored into a array
} catch {
// report error
}
}
}
有关JSON的更多详细信息,请访问www.json.org。