[英]how to select specific words from an string of character
我有这样一条线
#aman#ab179#167#abbash aman battra
我想要这样的输出
#aman
#ab179
#167
#abbash
所有以#
作为第一个字母的字符,但我却得到整行。
这是我的代码
for word in stringWordsArray {
print(word)
if word.hasPrefix("#"){
print("Exists")
print(word)
}
}
试试这个代码
let str = "aman#ab179#167#abbash aman battra"
let arr = str.components(separatedBy: "#")
for arrayString in arr{
print("\((String (describing: arrayString).firstWord()!))")
}
//选择第一个单词
extension String {
func firstWord() -> String? {
return self.components(separatedBy: " ").first
}
}
我猜想,您在寻找String
split
方法。 在这里,我为您提供了示例:
let str = "aman#ab179#167#abbash aman battra"
let separator = "#"
var arr = str
.split(separator: Character(separator)) // get array of string separated by `#`
.map { separator + $0 }// manually add `#`
.flatMap { $0.split(separator: " ").first } // remove substring separated by " "
print(arr)
这有效:
let sentence = "#aman#ab179#167#abbash aman battra"
let words = sentence.split(separator: "#").flatMap { $0.split(separator: " ").first }.map { "#" + $0 }
根据您的要求,您将使用以下代码获得准确的输出
迅捷4.0
let temp = "#aman#ab179#167#abbash aman battra"
var fullNameArr = temp.components(separatedBy: .whitespaces)[0].split(separator: "#")
var arrData = [String]()
for word in fullNameArr {
var temp = word
temp.insert("#", at: temp.startIndex)
arrData.append(String(temp))
}
print(arrData)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.