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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (265)

我想要这个:

var String1 = "Stack Over Flow"
var desiredOutPut = "SOF" // the first Character of each word in a single String (after space)

我知道如何从字符串中获取第一个字符,但不知道该怎么做这个问题。

提问于
用户回答回答于

你可以尝试以下代码:

let stringInput = "First Last"
let stringInputArr = stringInput.componentsSeparatedByString(" ")
var stringNeed = ""

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

print(stringNeed)

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

用户回答回答于

我将使用下面的代码对Frave3.0字符串类进行扩展。

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

所属标签

可能回答问题的人

  • 应用案例分享

    1 粉丝490 提问5 回答
  • o o

    4 粉丝495 提问5 回答
  • 找虫虫

    5 粉丝0 提问4 回答
  • 学生

    8 粉丝476 提问3 回答

扫码关注云+社区

领取腾讯云代金券