我想从字符串中获取一个子字符串,该字符串以"<ONLINE>"
或"<OFFLINE>"
开头(应该成为我的子字符串)。当我尝试创建一个Range对象时,我可以使用startIndex
轻松访问第一个字符,但是如何获取我的子字符串的右括号的索引,该索引将是完整字符的第8个或第9个字符。字符串?
更新
一个简单的例子:
let onlineString:String = "<ONLINE> Message with online tag!"
let substring:String = // Get the "<ONLINE> " part from my string?
let onlineStringWithoutTag:String = onlineString.replaceOccurances(of: substring, with: "")
// What I should get as the result: "Message with online tag!"
所以基本上,问题是:我该怎么办substring
?
答案 0 :(得分:6)
let name = "Ajay"
// Use following line to extract first chracter(In String format)
print(name.characters.first?.description ?? "");
// Output : "A"
答案 1 :(得分:3)
正确的方法是使用索引如下:
let string = "123 456"
let firstCharIndex = string.index(string.startIndex, offsetBy: 1)
let firstChar = string.substring(to: firstCharIndex)
print(firstChar)
答案 2 :(得分:2)
如果您不想使用范围
let onlineString:String = "<ONLINE> Message with online tag!"
let substring:String = onlineString.components(separatedBy: " ")[0]
print(substring) // <ONLINE>
答案 3 :(得分:1)
与OOPer的相似:
let string = "<ONLINE>"
let closingTag = CharacterSet(charactersIn: ">")
if let closingTagIndex = string.rangeOfCharacter(from: closingTag) {
let mySubstring = string.substring(with: string.startIndex..<closingTagIndex.upperBound)
}
或者使用正则表达式:
let string = "<ONLINE>jhkjhkh>"
if let range = string.range(of: "<[A-Z]+>", options: .regularExpression) {
let mySubstring = string.substring(with: range)
}
答案 4 :(得分:0)
此代码可为您的目的提供一些帮助:
let myString = "<ONLINE>abc"
if let rangeOfClosingAngleBracket = myString.range(of: ">") {
let substring = myString.substring(to: rangeOfClosingAngleBracket.upperBound)
print(substring) //-><ONLINE>
}
答案 5 :(得分:0)
快捷键4
let firstCharIndex = oneGivenName.index(oneGivenName.startIndex, offsetBy: 1)
let firstChar = String(oneGivenName[..<firstCharIndex])
答案 6 :(得分:0)
此代码为您提供字符串的第一个字符。 Swift提供了这种返回字符的方法?您必须在使用前将其包装
let str = "FirstCharacter" print(str.first!)
答案 7 :(得分:0)
在 swift 5
> DT[, .SD[order(b)], a]
a b
1: C 129
2: C 679
3: C 836
4: C 930
5: A 270
6: A 299
7: A 471
8: A 509
9: D 187
10: D 307
11: D 597
12: D 978
13: B 277
14: B 494
15: B 874
16: B 950
17: E 330
18: E 591
19: E 775
20: E 841
> DT[, setorder(.SD, b), a]
a b
1: C 129
2: C 679
3: C 836
4: C 930
5: A 270
6: A 299
7: A 471
8: A 509
9: D 187
10: D 307
11: D 597
12: D 978
13: B 277
14: B 494
15: B 874
16: B 950
17: E 330
18: E 591
19: E 775
20: E 841
答案 8 :(得分:0)
Swift 5 扩展
extension String {
var firstCharactor: String? {
guard self.count > 0 else {
return nil
}
return String(self.prefix(1))
}
}
答案 9 :(得分:0)
let character = MyString.first
这是一种快速从字符串中获取第一个字符的简单方法。