Ios 如何在特定字母后将字符串插入另一个字符串?

Ios 如何在特定字母后将字符串插入另一个字符串?,ios,cocoa-touch,swift,nsstring,Ios,Cocoa Touch,Swift,Nsstring,我在数据库中存储的高度是62或511,而不是6英尺2或5英尺11 这是我准备要保存的字符串的方法: let height = 6 ft 2 let myNewString = height.stringByReplacingOccurrencesOfString(" ft ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil) println(myNewString) //

我在数据库中存储的高度是62或511,而不是6英尺2或5英尺11

这是我准备要保存的字符串的方法:

    let height = 6 ft 2
    let myNewString = height.stringByReplacingOccurrencesOfString(" ft ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
    println(myNewString) // 62
我现在想做的是在显示数据库中的数据时做相反的事情

所以我想从数据库中获取返回的“62”,并将这个字符串“ft”插入其中。我的目标是在应用程序上显示“6英尺2”

我该怎么做

我希望避免在数据库中存储两个专门用于高度的列。我只知道如何连接字符串,但这并不完全是连接字符串。我正在将其插入现有字符串中

我希望有一个有效的方法来做这件事。我已经四处寻找了一段时间,似乎找不到我的解决办法

谢谢你抽出时间

更新:

    let height = 6 ft 2
    let myNewString = height.stringByReplacingOccurrencesOfString(" ft ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
    println(myNewString) // 62
阅读完评论后,我想知道是否最好在字符串中的第一个字符后添加一个小数点,例如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

最好以英寸为单位储存高度(例如,6英尺2储存74英寸)

无论如何:

    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)"

最好以英寸为单位储存高度(例如,6英尺2储存74英寸)

无论如何:

    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
符合
RangeReplacableCollectionType
,它有一个
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)"
}

Swift的
String
符合
RangeReplacableCollectionType
,它有一个
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)"
}

你的陈述模棱两可<代码>111可以是
11英尺1
1英尺11
。最小年龄为4英尺0,最大年龄为7英尺11@MartinROhh!我明白你的意思。我完全错过了。为我回到绘图板上。也许我可以在第一辆车的后面加一个小数点。根据您所述的高度范围,第一个数字始终是英尺,其余数字(如果有)是英寸。与其更巧妙地使用格式,不如将其存储为英寸。如果目标是这样的话,你甚至可以通过使用1字节的int而不是3字节的字符串来节省空间<代码>111可以是
11英尺1
1英尺11
。最小年龄为4英尺0,最大年龄为7英尺11@MartinROhh!我明白你的意思。我完全错过了。为我回到绘图板上。也许我可以在第一辆车的后面加一个小数点。根据您所述的高度范围,第一个数字始终是英尺,其余数字(如果有)是英寸。与其更巧妙地使用格式,不如将其存储为英寸。如果目标是这样的话,您甚至可以通过使用1字节的int而不是3字节的字符串来节省空间“但我没有这样做的原因是,我觉得我无法在解析查询条件下使用该格式,例如高度大于….的查询。”。。。。。而且还不到。我以为这只适用于整数。但我现在正在解析中,已经手动编辑了一些字段,并单击了列标题,这些字段已按正确的顺序排列(从最低高度到最高高度),因此猜测它在代码中也会起作用。因此,我可以只存储为例如6'2“,并以这种方式显示。您确定
5'10”
将在
5'2”
之后排序吗?我曾考虑存储为4'0“,但我没有这样做的原因是因为我觉得我无法在解析查询条件下使用该格式,例如,查询高度大于。。。。。而且还不到。我以为这只适用于整数。但我现在正在解析中,已经手动编辑了一些字段,并单击了列标题,这些字段已按正确的顺序排列(从最低高度到最高高度),因此猜测它在代码中也会起作用。因此,我可以将其存储为例如6'2“,并以这种方式显示。您确定
5'10”
将在
5'2”
之后排序吗?