我正在使用以下代码来使用 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)")
}
}
最佳答案
问题是用户输入的字符串包含尾随换行符
(\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)")
}
关于swift - 无法将通过终端输入的字符串与 Swift 中的另一个字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28089103/