swift / xcode / ios新手 - 我想从字符串中获取特定行但不知道如何去做。这是我的字符串:
PRICE 9.00
TAX 3.54
TOTAL 12.54
CASH 12.54
THANK YOU FOR SHOPPING!
Receipt Code: 1HI 12D0 00A 0024 //want to grab this 14 character code
有没有人有一种有效的方法来扫描字符串然后获取14个字符的代码?它有时会上升几行或几行,但总是遵循'收据代码:xxx xxxx xxx xxxx'我基本上只是希望它返回没有空格的coe。
答案 0 :(得分:1)
#include mips_cpu.h
答案 1 :(得分:1)
具有正则表达式的解决方案。
但是它假设字符组是3 - 4 - 3 - 4
let string = "PRICE 9.00\nTAX 3.54\nTOTAL 12.54\n\nCASH 12.54\n\nTHANK YOU FOR SHOPPING!\nReceipt Code: 1HI 12D0 00A 0024 //want to grab this 14 character code"
let pattern = "\\w{3}[ ]\\w{4}[ ]\\w{3}[ ]\\w{4}"
do {
let regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions())
if let result = regex.firstMatchInString(string, options: NSMatchingOptions(), range: NSMakeRange(0, string.characters.count)) {
let code = (string as NSString).substringWithRange(result.range).stringByReplacingOccurrencesOfString(" ", withString: "")
}
} catch let error as NSError {
print(error)
}
答案 2 :(得分:1)
如果“收据代码”仅出现一次且代码是最后一行:
let bill = self.giveMyTheBill()
let range = bill.rangeOfString("Receipt Code:")
if range != nil {
let code = bill.substringFromIndex(range!.endIndex)
.stringByReplacingOccurrencesOfString(" ", withString: "")
}