我使用以下代码使用swift实现基本字典。但是编译器没有返回任何值。我不知道什么似乎是问题。需要帮助!
P.S我是Swift的新手。
import Foundation
var dic = ["Nil":"Neel Goswami","Kirana":"Kinara Shah","Sapre":"Rohan Sapre","JP":"Joy Patel","Shreya":"Shrey Bhat","Ali Bhai":"Aalisha Sheth","Gandhi":"Shlok Gandhi","Binti":"Biyanta Shah","Udgam":"Aayushi Shah"]
dic["Wary"] = "Aishwary Rawat"
dic["Sixer"] = "Ruchir Patel"
dic["Bhikhari"] = "Aabhas Singhal"
var str: String? = "Initial"
println("Enter the pet name: ")
str = NSString(data: NSFileHandle.fileHandleWithStandardInput().availableData, encoding:NSUTF8StringEncoding)
var st: String = str!
for (pet, act) in dic
{
if (pet == st) {
println("His/Her actual name is \(act)")
}
}
答案 0 :(得分:1)
问题是来自用户输入的字符串包含一个尾随的换行符
(\n
)。您可以通过更改
var st: String = str!
到
var st = str!.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet())
或者,使用
var st = str!.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
也会删除前导和尾随空格字符。
请注意,您可以将for循环简化为字典查找:
if let act = dic[st] {
println("His/Her actual name is \(act)")
}