[英]How do I insert a string into another string after a specific letter?
我在数据库中将高度存储为62或511,而不是6 ft 2或5 ft 11。
这是我准备将要保存的字符串的方法:
let height = 6 ft 2
let myNewString = height.stringByReplacingOccurrencesOfString(" ft ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
println(myNewString) // 62
我现在想做的是在显示数据库中的数据时做相反的事情。
因此,我想从数据库中获取返回的“ 62”并将此字符串“ ft”插入其中。 我的目标是最终显示“ 6 ft 2”以显示在应用程序上。
我怎样才能做到这一点?
我想避免在数据库中存储两个专门用于高度的列。 我只知道如何串联字符串,但这并不完全是串联字符串。 我将其插入到现有字符串中。
我希望能有一种有效的方法来做到这一点。 现在已经四处寻找,似乎找不到我的解决方案。
谢谢你的时间。
更新:
阅读评论后,我想知道在字符串中的第一个字符之后添加小数点是否更好,例如4.2、4.10、5.4、5.11、6.2等
let height = 6 ft 2
let myNewString = height.stringByReplacingOccurrencesOfString(" ft ", withString: ".", options: NSStringCompareOptions.LiteralSearch, range: nil)
println(myNewString) // 6.2
最好仅以英寸为单位存储高度(例如,存储74英寸为6'2“)。
无论如何:
let input = "62"
let feet = (input as NSString).substringToIndex(1)
let inches = (input as NSString).substringFromIndex(1)
let output = "\(feet) ft \(inches)"
如果您不喜欢使用NSString
,可以这样避免:
let input = "62";
let feet = input.substringToIndex(input.startIndex.successor())
let inches = input.substringFromIndex(input.startIndex.successor())
let output = "\(feet) ft \(inches)"
Swift的String
符合RangeReplaceableCollectionType
,它具有一个splice
方法– splice
允许您将一个集合插入另一个集合。 由于字符串是集合,因此您可以编写:
var height = "62"
if !height.isEmpty {
height.splice(" ft ", atIndex: height.startIndex.successor())
} // height is now "6 ft 2"
或者,如果您知道只希望在“ ft”之前的第一个字符,则可以执行以下操作:
let height = "62"
if let feet = first(height) {
let inches = dropFirst(height)
let heightWithFt = "\(feet) ft \(inches)"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.