【问题标题】:How to remove space before end of a String in Swift如何在 Swift 中删除字符串结束前的空格
【发布时间】:2020-08-21 08:48:40
【问题描述】:

我有一个 String 有 2 个空格,我只想删除 String 中的最后一个空格并删除最后一个文本。 components(separatedBy: " ") 在有我不想做的空间的地方拆分测试。

当前文本

let teamName = "Aston Villa -1"

我希望它是这样的

teamName = "Aston Villa"

【问题讨论】:

  • @JoakimDanielson -1
  • 这是来自后端,所以我不能像那样删除它,因为文本通常不同。我想要的只是团队名称。而已。我可以将其拆分并将 [0] 和 [1] 加在一起,但我不想那样做
  • 这能回答你的问题吗? Remove last character from string. Swift language
  • 这只是一个例子
  • 你必须更具体,最后一个数字是什么。是不是总是负数,可以不止一个数字,等等。

标签: arrays swift string


【解决方案1】:

这是一个正则表达式的解决方案。

let teamName = "Aston Villa -1"
let trimmedTeamName = teamName.replacingOccurrences(of: "(?:\\s[^\\s]+)$", with: "", options: .regularExpression)

该模式向后 (?:) 搜索空白字符 (\\s),然后在字符串末尾 ($) 后跟 1 个或多个非空白字符 ([^\\s]+)


您也可以将range(of.backwards 选项一起使用

if let rangeOfLastWhiteSpace = teamName.range(of: " ", options: .backwards) {
    let trimmedTeamName = String(teamName[..<rangeOfLastWhiteSpace.lowerBound])
}

【讨论】:

    【解决方案2】:

    将字符串拆分为数组["Aston", "Villa", "-1"]。删除数组的最后一个元素:["Aston", "Villa"]。重新加入数组"Aston Villa"

    let fixedTeamName = teamName.split(separator: " ")
        .dropLast()
        .joined(separator: " ")
    
    

    【讨论】:

      【解决方案3】:
      let kutcer = "Aston Villa -1"
      kutcer.lastIndex(of: " ").map( kutcer.prefix(upTo:) ) == "Aston Villa" // true
      

      …如果你需要它作为非可选的String:

      kutcer
      .lastIndex(of: " ")
      .map( kutcer.prefix(upTo:) )
      .map(String.init)
      ?? kutcer
      

      【讨论】:

        【解决方案4】:

        这应该有效,也适用于一个单词的团队名称。

        var teamName = "Aston Villa -1"
        
        var foundSpace = false
        
        while foundSpace == false {
            if teamName.removeLast() == " " {
                foundSpace = true
            }
        }
        
        print(teamName) //  "Aston Villa"
        

        【讨论】:

          猜你喜欢
          • 2015-04-17
          • 1970-01-01
          • 2018-03-13
          • 2012-09-27
          • 1970-01-01
          • 1970-01-01
          • 2022-01-24
          • 1970-01-01
          • 2011-07-25
          相关资源
          最近更新 更多