如何在swift中创建包含大写字母的单词列表?

时间:2016-06-09 15:01:17

标签: string swift

我想生成一个给定字符串的单词列表,其中每个列出的单词至少包含一个大写字母。

有一个像这样的字符串:

let str: String = "Apple watchOS 3 USA release date and feature rumours."

我想得到一个这样的数组:

var list: [String] = ["Apple", "watchOS", "USA"]

这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:11)

var list = str.componentsSeparatedByString(" ").filter{ $0.lowercaseString != $0 }

答案 1 :(得分:3)

你可以在Swift中使用String的内置函数来获取字符串的所有单词。它比单独用空格(“”)更好,因为你可以用一个点来表达一些单词(如下面的例子)

let str = "Apple watchOS 3 USA release date and feature Rumours."
var list = [String]()
str.enumerateSubstringsInRange(str.startIndex..<str.endIndex, options:.ByWords) { 
    (substring, substringRange, enclosingRange, value) in
    //add to your array if lowercase != string original
    if let _subString = substring where _subString.lowercaseString != _subString {
        list.append(_subString)
    }
}

答案 2 :(得分:0)

你可能会做这样的事情。我还没有测试过,只是快速写下来。

let str = "Apple watchOS 3 USA release date and feature rumours."
let strArr = str.componentsSeparatedByString(" ")
var upperWords: Array<String> = []
for word in strArr {
    if word != word.lowercaseString {
        upperWords.append(word)
    }
}