Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在不使用预定义函数的情况下反转字符串_Swift - Fatal编程技术网

Swift 在不使用预定义函数的情况下反转字符串

Swift 在不使用预定义函数的情况下反转字符串,swift,Swift,请原谅,我是这门语言的新手 编辑:是否有方法反转数组元素的位置 我试图创建一个函数来测试给定的输入是否是回文。我试图避免使用使用reversed()的函数 解决方案1 let word=“aabbaa” 设chars=word.characters 让一半=字符数/2 设leftSide=Array(chars)[0..解决方案1 let word=“aabbaa” 设chars=word.characters 让一半=字符数/2 让leftSide=Array(chars)[0..您的方法可以

请原谅,我是这门语言的新手

编辑:是否有方法反转数组元素的位置

我试图创建一个函数来测试给定的输入是否是回文。我试图避免使用使用reversed()的函数

解决方案1
let word=“aabbaa”
设chars=word.characters
让一半=字符数/2
设leftSide=Array(chars)[0..解决方案1
let word=“aabbaa”
设chars=word.characters
让一半=字符数/2
让leftSide=Array(chars)[0..您的方法可以用于反转数组。但是您必须
在起始位置插入原始数组的每个元素
目标数组的位置(将其他元素移动到末尾):

可以直接对字符串的字符执行相同操作:

// Swift 2.2:
let word = "TEST"
var reversed = ""
for char in word.characters {
    reversed.insert(char, atIndex: reversed.startIndex)
}
print(reversed) // "TSET"

// Swift 3:
let word = "TEST"
var reversed = ""
for char in word.characters {
    reversed.insert(char, at: reversed.startIndex)
}
print(reversed)
你的方法可以用来反转数组,但你必须 在起始位置插入原始数组的每个元素 目标数组的位置(将其他元素移动到末尾):

可以直接对字符串的字符执行相同操作:

// Swift 2.2:
let word = "TEST"
var reversed = ""
for char in word.characters {
    reversed.insert(char, atIndex: reversed.startIndex)
}
print(reversed) // "TSET"

// Swift 3:
let word = "TEST"
var reversed = ""
for char in word.characters {
    reversed.insert(char, at: reversed.startIndex)
}
print(reversed)

反转的另一种解决方案:

var original : String = "Test"
var reversed : String = ""
var c = original.characters
for _ in 0..<c.count{
    reversed.append(c.popLast()!)
}
var-original:String=“Test”
var反转:String=“”
var c=原始字符

对于uu0..另一种反转解决方案:

var original : String = "Test"
var reversed : String = ""
var c = original.characters
for _ in 0..<c.count{
    reversed.append(c.popLast()!)
}
var-original:String=“Test”
var反转:String=“”
var c=原始字符
对于uu0..我的解决方案如下:

extension String {
    func customReverse() -> String {
        var chars = Array(self.characters)
        let count = chars.count

        for i in 0 ..< count/2 {
            swap(&chars[i], &chars[count - 1 - i])
        }

        return String(chars)
    }
}

let input = "abcdef"
let output = input.customReverse()
print(output)
扩展字符串{
func customReverse()->字符串{
var chars=数组(self.characters)
让count=chars.count
对于0中的i..<计数/2{
交换(&chars[i],&chars[count-1-i])
}
返回字符串(字符)
}
}
让输入=“abcdef”
让输出=输入。customReverse()
打印(输出)
你可以试试。

这是我的解决方案:

extension String {
    func customReverse() -> String {
        var chars = Array(self.characters)
        let count = chars.count

        for i in 0 ..< count/2 {
            swap(&chars[i], &chars[count - 1 - i])
        }

        return String(chars)
    }
}

let input = "abcdef"
let output = input.customReverse()
print(output)
扩展字符串{
func customReverse()->字符串{
var chars=数组(self.characters)
让count=chars.count
对于0中的i..<计数/2{
交换(&chars[i],&chars[count-1-i])
}
返回字符串(字符)
}
}
让输入=“abcdef”
让输出=输入。customReverse()
打印(输出)
你可以试试。

Swift 5

extension String {
    func invertedEntropy() -> String {
        var word = [Character]()
        for char in self {
            word.insert(char, at: 0)
        }
        return String(word)
    }
}
var palindrome = "TENET"
palindrome.invertedEntropy()

// "TENET"
斯威夫特5

extension String {
    func invertedEntropy() -> String {
        var word = [Character]()
        for char in self {
            word.insert(char, at: 0)
        }
        return String(word)
    }
}
var palindrome = "TENET"
palindrome.invertedEntropy()

// "TENET"

你能给出一个输入和输出的例子吗?word=[“T”,“E”,“S”,“T”]预期输出温度=[“T”,“S”,“E”,“T”]那么你想交换字符吗?好的,等等,这一切都没有意义。1)
单词实际上是一个
数组,而不是
字符串,而
单词是一个
字符串
2)
索引计数
虽然是一个
let
常量,但正在发生变异,3)交换这些字母与追加无关。OP、 你能确切地说明你想要做什么吗?所以请更新你的问题。正确的认识不可能了解你的意思;)你能给出一个输入和输出的例子吗?word=[“T”,“E”,“S”,“T”]预期输出温度=[“T”,“S”,“E”,“T”]那么你想交换字符吗?好的,等等,这一切都没有意义。1)
单词实际上是一个
数组,而不是
字符串,而
单词是一个
字符串
2)
索引计数
虽然是一个
let
常量,但正在发生变异,3)交换这些字母与追加无关。OP、 请您明确说明您希望执行的操作好吗?因此请更新您的问题。Right know无法了解您的意思;)此错误显示为:第4行第20列的错误:调用中的参数标签不正确(have':atIndex:',expected':at:')已反转。insert(char,atIndex:0)^~~~~~~~atme@JioM.:我的代码是Swift 2.2。现在更新为Swift 3。我可以问一下为什么在Swift 3.0上删除了atIndex吗?@JioM.:它被重命名为
insert(\uz,at:)
。使用Swift 3更改了批次。请特别参阅。此错误显示为:第4行第20列的错误:调用中的参数标签不正确(将“:atIndex:”,预期“:At:”)反转。插入(char,atIndex:0)^~~~~~~~atme@JioM.:我的代码是Swift 2.2。现在更新为Swift 3。请问为什么在Swift 3.0上删除了atIndex?@JioM.:它被重命名为
insert(u,at:)
。at批次使用Swift 3进行了更改。请特别参阅。
extension String {
    func invertedEntropy() -> String {
        var word = [Character]()
        for char in self {
            word.insert(char, at: 0)
        }
        return String(word)
    }
}
var palindrome = "TENET"
palindrome.invertedEntropy()

// "TENET"