反转字符串值的顺序

问题描述 投票:0回答:14

我有以下函数可以反转字符串值的显示顺序。 我是 Swift 的新手,我正在尝试理解它的逻辑。 '!pleh' 值变成了 'Help!' 是怎么回事? ? 谢谢

func reverse(_ s: String) -> String {
 var str = ""
 for character in s.characters {
    str = "\(character)" + str
 }
 return str
}
print (reverse("!pleH"))
swift function character
14个回答
18
投票

在 swift 4.0 中,直接在字符串上调用

reversed
即可完成工作

let str = "abc"
String(str.reversed()) // This will give you cba

15
投票

内嵌评论,

func reverse(_ s: String) -> String {
 var str = ""
 //.characters gives the character view of the string passed. You can think of it as array of characters.
 for character in s.characters {
    str = "\(character)" + str
    //This will help you understand the logic. 
    //!+""
    //p+!
    //l+p! ... goes this way
    print ( str)
 }
 return str
}
print (reverse("!pleH"))

14
投票

注意:如果您不想使用

reversed()
内置功能,则可以使用以下代码。

在字符串上使用高阶函数“Reduce”的单行。

extension String {
func reverse() -> String  { return self.reduce("") { "\($1)" + $0 } }
}

8
投票

函数

reversed(_:)
迭代提供的字符串
Character
中的每个
s
,并以相反的顺序简单地连接它们。

// 1st pass in the 'for' loop:
//    @ start of iteration: 'str' equals ""
//    update value of 'str' according to
//    str = aCharacterAsString + str = "!" + ""

// 2nd pass in the 'for' loop:
//    @ start of iteration: str equals "!"
//    update value of 'str' according to
//    str = anotherCharacterAsString + str = "p" + "!"

// 3rd pass in the 'for' loop:
//    @ start of iteration: str equals "p!"
//    update value of 'str' according to
//    str = yetAnotherCharacterAsString + str = "l" + "p!"

// and so on ...

// after end of 'for' loop: str == "help!"

// this value of 'str' is then return to callee (which prints it)

更简单的方法是在

reversed()
实例的
CharacterView
上使用
String

let str = "!pleH"
print(String(str.characters.reversed())) // Help!

Swift 4 您可以直接在字符串中使用它

let str = "!pleH"
print(String(str.reversed())) // Help!

7
投票
var string = "My,playground and my Swift" 
var reverseString = ""  
for str in string { 
    reverseString.insert(str, at: reverseString.startIndex) 
}  
print(reverseString)

2
投票

在 Swift 4 中 - 反转字符串 ::

func reverse(string:String) -> String {

    var reverse = ""

    for char  in string {

        reverse = char.description + reverse
    }
    return reverse
}

输入 :: 反向(字符串:“Ashish Chhabra”)

输出 :: arbahhC hsihsA


2
投票
var strnew = "hello world new" 

var reverseStr = ""

for each in strnew
{
    reverseStr = String(each) + reverseStr
}

print(reverseStr)

1
投票
let string = readLine()!
var resultString = ""
for i in 1...string.count {
    let index = string.index(string.endIndex, offsetBy: -i)
    resultString.append(string[index])
}
print(resultString)

0
投票

使用字符和索引得到不同的答案。

 //Reverse String
func reverse(str:String)->String{
    var chars = [Character]()
    for i in (0...str.count).reversed() {
       let index = str.index(str.startIndex, offsetBy: i)
       chars.append(str[index])
    }
    return String(chars)
}

0
投票

您可以使用以下代码-

let str = "My name is Kplin Cours"
 var reverseString = ""
 for i in 0..<str.count {
  let index = str.index(str.startIndex, offsetBy: (str.count - 1) - i)
//  print(String(str[index]))
 reverseString = reverseString + String(str[index])
}

print(reverseString)  //sruoC nilpK si eman yM

0
投票
let inputstr = "ABCDEFGHIGKLMNPO"
var resultstr = "";
    for strchar in inputstr {
     resultstr = String(strchar) + resultstr
    }
                  print("Result = ",resultstr)

0
投票

斯威夫特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"

0
投票

就这么简单!

let str = "Hello, world!"
let reversed = String(str.reversed())
print(reversed)

0
投票

简单

1- func reverse(str : String) -> String{ 2-返回“(String(str.reversed()))”

© www.soinside.com 2019 - 2024. All rights reserved.