我想要的是:
var String1 = "Stack Over Flow"
var desiredOutPut = "SOF" // the first Character of each word in a single String (after space)
我知道如何从字符串中获取第一个字符,但不知道如何处理此问题。
发布于 2015-12-31 11:03:24
你可以试试这段代码:
let stringInput = "First Last"
let stringInputArr = stringInput.components(separatedBy:" ")
var stringNeed = ""
for string in stringInputArr {
stringNeed += String(string.first!)
}
print(stringNeed)
如果componentsSeparatedByString
有问题,您可以尝试按字符空间分隔,然后在数组中继续,您可以删除所有空字符串。
希望这对你有所帮助!
发布于 2017-02-16 23:33:06
为了让它更优雅,我会用下面的代码为swift 3.0 String类做一个扩展。
extension String
{
public func getAcronyms(separator: String = "") -> String
{
let acronyms = self.components(separatedBy: " ").map({ String($0.characters.first!) }).joined(separator: separator);
return acronyms;
}
}
之后你可以像这样使用它:
let acronyms = "Hello world".getAcronyms();
//will print: Hw
let acronymsWithSeparator = "Hello world".getAcronyms(separator: ".");
//will print: H.w
let upperAcronymsWithSeparator = "Hello world".getAcronyms(separator: ".").uppercased();
//will print: H.W
发布于 2015-12-31 11:08:37
或使用.reduce()
let str = "Stack Over Flow"
let desiredOutPut = str
.components(separatedBy: " ")
.reduce("") { $0 + ($1.first.map(String.init) ?? "") }
print(desiredOutPut)
https://stackoverflow.com/questions/34540332
复制相似问题