繁体   English   中英

如何从字符串中选择特定的单词

[英]how to select specific words from an string of character

我有这样一条线

#aman#ab179#167#abbash aman battra

我想要这样的输出

  1. #aman
  2. #ab179
  3. #167
  4. #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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM