swift - 无法将通过终端输入的字符串与 Swift 中的另一个字符串进行比较

标签 swift nsstring

我正在使用以下代码来使用 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/

相关文章:

swift - 检测 iOS 暗模式更改

ios - 为什么 SKProductsRequestDelegate/SKRequestDelegate didFailWithError 在 NSError 上抛出 EXC_BAD_ACCESS?

ios - 在 UILabel et.al 中使用 NSString 子类

包含特殊字符的 Swift 字符串

ios - 具有 [String :[String: [[Double]]]] containing 5000 entries won't compile. 类型变量的应用程序是否应存储在单独的文件中?

swift - SwiftUI-将边框添加到图像的一个边缘

ios - 二进制表达式 ('int' 和 'NSString' 的无效操作数)

iphone - NSString 到 NSDate 的转换。 "2011-08-24T14:06:10Z"的问题

objective-c - 如何将具有十六进制值的 NSString 转换为二进制 char*?

swift - 导航 Controller 不工作可疑