【问题标题】:How to make a function that swaps 3 characters in a string?如何制作一个在字符串中交换 3 个字符的函数?
【发布时间】:2017-07-29 15:31:37
【问题描述】:

例如,如果我有一个字符串 RedSox 并想将其更改为 SoxRed? 我想它会是这样的:

     func swapString (String: String) -> String {

  var stringReplaced = String

  var result = stringReplaced.Select(x=> x == 'A' ? 'B' : (x=='B' ? "A" : x)).ToArray()

  stringReplaced = String(result)

    return stringReplaced
  }

【问题讨论】:

  • 如果单词没有6个字符怎么办?如果有更多呢?如果它有 less 怎么办?
  • 是的,就是这样,它会换掉每对三个字符
  • 这里有什么问题?
  • “A”或“1234”的预期结果是什么?
  • 你的问题还是很不清楚。您想将字符串分成每组 6 个字符,并将前 3 个字符与后 3 个字符交换吗?如果是这样,当组中的字符少于 6 个时会发生什么?

标签: swift string


【解决方案1】:

只需使用String 类已经提供的方法。 将这些“帮助”方法放在扩展中总是一个好主意。

// Define String extension
extension String {

    func swappedString(count swapCount: Int) -> String {
        guard self.characters.count > swapCount else {
            return self
        }

        let index = self.index(self.endIndex, offsetBy: -swapCount)
        let first = self.substring(from: index)
        let second = self.substring(to: index)

        return first + second
    }
}

// Use it
"RedSox".swappedString(count: 3) //= SoxRed

【讨论】:

    【解决方案2】:

    此函数获取字符串的最后 3 个字符并将它们附加到开头,执行此操作的方法肯定不那么冗长,但它确实有效。如果传递一个

    import UIKit
    
    let string = "RedSox"
    
    
    func changeString ( _ string : String) -> String {
        var characters : Array<Character> = []
        for character in string.characters {
            characters.append(character)
        }
    
        var characters2 : Array<Character> = []
        var position = characters.count - 3
    
        while position < characters.count {
             characters2.append(characters[position])
             position += 1
        }
    
        characters.removeLast()
        characters.removeLast()
        characters.removeLast()
        characters2.append(contentsOf: characters)
        return (String(characters2))
    }
    
    
    var newString = changeString(string)
    print (newString)
    

    【讨论】:

      猜你喜欢
      • 2019-05-14
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 2018-12-11
      • 1970-01-01
      • 2012-10-04
      • 2011-07-24
      相关资源
      最近更新 更多