作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 UITableViewCell 中有一个带有变量的字符串。例如:var toDoItem: String = String("名称:\(名称)和数量:\(数量)和颜色:\(颜色)"
这在表格 View 单元格中显示为字符串。名称添加到 Names 的 [String] 中,数量添加到 amount 的 int 数组 [Int] 中,依此类推。
如果我方便删除单元格,我应该能够删除该行的名称、数量和颜色。但由于这是一个字符串,我必须能够单独访问这些变量以从相关数组中扣除。
给定内插字符串,如何访问变量?
谢谢。
最佳答案
如果您的值均采用“key:value”形式,后跟空格或字符串末尾,那么此函数可能适合您:
import Foundation
func valueFromKeyInString(key:String, string:String) -> String? {
if let keyRange = string.rangeOfString(key) {
let endIndex = string.rangeOfString(" ", options: [], range:
(keyRange.startIndex..<string.endIndex), locale: NSLocale.currentLocale())?.startIndex ??
string.endIndex
return string.substringWithRange(keyRange.endIndex..<endIndex)
}
return nil
}
// how it's used:
let string = "the name:bob and quantity:12 and color:red"
let name = valueFromKeyInString("name:", string: string) // => "bob"
let quantity = valueFromKeyInString("quantity:", string: string) // => "12"
let color = valueFromKeyInString("color:", string: string) // => "red"
然后您可以使用这些字符串转换为您需要的值。
正则表达式也可以工作,但是如果您可以确定字符串的格式,那么这是一个相当简单的解析。当然,如果您有权访问实际值,那么您应该尝试获取这些值,而不是解析字符串。
关于ios - 从内插字符串中获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35706990/
我是一名优秀的程序员,十分优秀!