首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取字符串中每个单词的第一个字符?

如何获取字符串中每个单词的第一个字符?
EN

Stack Overflow用户
提问于 2015-12-31 10:49:54
回答 8查看 9.2K关注 0票数 10

我想要的是:

代码语言:javascript
复制
var String1 = "Stack Over Flow"
var desiredOutPut = "SOF" // the first Character of each word in a single String (after space)

我知道如何从字符串中获取第一个字符,但不知道如何处理此问题。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-12-31 11:03:24

你可以试试这段代码:

代码语言:javascript
复制
let stringInput = "First Last"
let stringInputArr = stringInput.components(separatedBy:" ")
var stringNeed = ""

for string in stringInputArr {
    stringNeed += String(string.first!)
}

print(stringNeed)

如果componentsSeparatedByString有问题,您可以尝试按字符空间分隔,然后在数组中继续,您可以删除所有空字符串。

希望这对你有所帮助!

票数 12
EN

Stack Overflow用户

发布于 2017-02-16 23:33:06

为了让它更优雅,我会用下面的代码为swift 3.0 String类做一个扩展。

代码语言:javascript
复制
extension String
{
    public func getAcronyms(separator: String = "") -> String
    {
        let acronyms = self.components(separatedBy: " ").map({ String($0.characters.first!) }).joined(separator: separator);
        return acronyms;
    }
}

之后你可以像这样使用它:

代码语言:javascript
复制
  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
票数 11
EN

Stack Overflow用户

发布于 2015-12-31 11:08:37

或使用.reduce()

代码语言:javascript
复制
let str = "Stack Over Flow"
let desiredOutPut = str
    .components(separatedBy: " ")
    .reduce("") { $0 + ($1.first.map(String.init) ?? "") }

代码语言:javascript
复制
print(desiredOutPut)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34540332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档