如何在swift中转换标签?
我想提取标签如何在swift中转换标签?,swift,textview,hashtag,Swift,Textview,Hashtag,我想提取标签 func getHashtags() -> [String] { let words = components(separatedBy: " ") var hashTags = [String]() for word in words{ if word.hasPrefix("#"){ let hashtag = word.dropFirst() ha
func getHashtags() -> [String] {
let words = components(separatedBy: " ")
var hashTags = [String]()
for word in words{
if word.hasPrefix("#"){
let hashtag = word.dropFirst()
hashTags.append(String(hashtag))
}
}
return hashTags
}
这种方法不是一个好办法。“我想吃米饭吃。”标签是从以下句子中提取出来的
但是如果句子是这样的话
hashtag无法识别换行符,因此不会提取整个hashtag。如何解决这个错误?告诉我提取标签的函数。您可以将代码重新格式化为类似的内容<代码>字符串这是您的原始文本
func getHashtags() -> [String] {
let words = components(separatedBy: " ")
var hashTags = [String]()
for word in words{
if word.hasPrefix("#"){
let hashtag = word.dropFirst()
hashTags.append(String(hashtag))
}
}
return hashTags
}
func getHashtags() -> [String] {
var words = string.components(separatedBy: "#") // Separate words by #
var hashTags = [String]()
// Check if the first word of sentence is a hashtag. If it is not then remove the first word
// ex "firstWord #firstHashtag". Here "firstWord " should be removed
var shouldRemoveFirstWord = !string.hasPrefix("#")
if shouldRemoveFirstWord {
words.removeFirst()
}
for word in words{
let trimmedWord = word.trim()
// If the word has space then get only the first word
let firstWord = word.components(separatedBy: " ")
let hashtag = firstWord[0]
hashTags.append(String(hashtag))
}
return hashTags
}
对于修剪功能,您可以这样添加它
extension String {
func trim() -> String {
return self.trimmingCharacters(in: .whitespacesAndNewlines)
}
}
请将示例数据作为文本而不是图像包含。我尝试从多行字符串中提取哈希标记,代码与您的代码类似,效果良好,因此我猜问题与您的数据有关,而不是与您的代码有关。示例数据如下。“hihihii hashtag#hashtag#hi#asdf\n#dfd#dfsfs”您应该编辑问题并添加它,而不是将其作为注释发布,并解释运行代码时得到的结果,因为在我看来,它工作正常。我可以通过稍微修改代码来解决它。非常感谢。