如何在Swift中交换一对字符

如何在Swift中交换一对字符

交换一对字符是指在给定字符串中交换两个字符的位置。这个操作常常用于各种编程语言和应用程序中来操作数据。

例子

输入

“mumbai”

输出

umbmia

输入

“Prita”

输出

rPtia

在这里,我们将给定的字符串分成一对字符,如“mumbai”: “mu”,“mb”,“ai”。现在我们交换字符的位置:“um”,“bm”,“ia”并创建结果字符串:“umbmia”。对于输入2类似。

在Swift中,我们可以使用以下方法交换给定字符串中的字符对的位置:

  • 通过转换为一个数组

  • 使用索引

方法1:转换为数组后交换字符对

要交换给定字符串中的字符对,我们首先使用Array()初始化器将给定字符串转换为数组,然后交换字符对的位置,然后使用String()初始化器将其再次转换为字符串。

算法

步骤1 − 创建一个函数来交换字符对。

步骤2 − 在函数内部,我们将字符串转换为字符数组。

步骤3 − 使用stride()函数的for-in循环来以两个字符为一组迭代并交换它们的位置。

步骤4 − 现在将最终的数组转换回字符串。

步骤5 − 返回结果字符串。

步骤6 − 创建一个测试字符串。

步骤7 − 现在调用函数并将测试字符串传递给它。

步骤8 − 显示输出。

示例

在下面的Swift程序中,我们将交换字符对。所以为此,我们创建了一个名为swappingPairsOfCharacters()的函数。该函数将输入字符串作为参数,然后使用Array()初始化器将输入字符串转换为字符数组。然后,它以两个字符为一组进行迭代,并使用swapAt()函数交换它们的位置。迭代完成后,最终的数组将使用String()初始化器转换回字符串。

import Foundation
import Glibc

// Function to swap pair of characters
func swappingPairsOfCharacters(inputString: String)-> String{
    var charArray = Array(inputString)

    for x in stride(from: 0, to: charArray.count-1, by: 2){
        charArray.swapAt(x, x+1)
    }
    return String(charArray)
}

// Input string
let enterString: String = "Mohina"

// Calling the function
let resultantString = swappingPairsOfCharacters(inputString: enterString)

// Displaying the result
print("Original String:", enterString)
print("String after swapping pair of characters:", resultantString)

输出

Original String: Mohina
String after swapping pair of characters: oMihan

方法2:使用索引交换字符对

在这种方法中,我们将使用字符的索引值来交换字符对。我们使用index()、startIndex、endIndex等方法和属性来获取字符的索引,并将结果附加到新字符串中。

算法

步骤1 - 创建一个函数来交换字符对。

步骤2 - 在函数内部,创建一个空字符串来存储结果字符串,并创建一个变量来跟踪给定字符串的当前位置。

步骤3 - 然后遍历给定字符串中的每个字符的索引。

步骤4 - 在循环内部,使用index()方法找到下一个字符的索引。如果下一个字符在范围内,则继续循环进行字符交换,并将交换后的字符添加到结果字符串中。

步骤5 - 最后返回结果字符串。

步骤6 - 创建一个测试字符串。

步骤7 - 现在调用函数并将测试字符串传递给它。

步骤8 - 显示输出。

示例

在下面的Swift程序中,我们将交换字符对。为此,我们创建了一个名为swapPairsOfCharacters()的函数。该函数以输入字符串作为参数,然后遍历字符串的每个字符。在循环内部,我们首先使用index()函数找到下一个索引,同时还检查下一个索引是否在给定范围内,如果是,则继续循环以交换字符。它提取两个要交换的字符,然后使用append()函数将第二个字符首先添加到结果字符串中,然后添加第一个字符。如果下一个字符超出输入字符串的结束位置,则循环将最后一个字符原样追加到结果字符串的末尾。最后,返回结果字符串。

import Foundation
import Glibc

// Function to swap pair of characters
func swapPairsOfCharacters(inputString: String) -> String {

    var resultString = ""
    var iIndex = inputString.startIndex

    while iIndex < inputString.endIndex {

        let nextIndex = inputString.index(iIndex, offsetBy: 1, limitedBy: inputString.endIndex) ?? inputString.endIndex

        if nextIndex < inputString.endIndex {
            let firstChar = inputString[iIndex]
            let secondChar = inputString[nextIndex]

            resultString.append(secondChar)
            resultString.append(firstChar)
        } else {

            resultString.append(inputString[iIndex])
        }

        iIndex = inputString.index(iIndex, offsetBy: 2, limitedBy: inputString.endIndex) ?? inputString.endIndex
    }
    return resultString
}

// Input String
let testString = "Mumbai"

// Function calling
let resString = swapPairsOfCharacters(inputString: testString)

print("Original String:", testString)
print("String after swapping pair of characters:", resString)

输出

Original String: Mumbai
String after swapping pair of characters: uMbmia

真实应用

交换字符对的真实应用包括:

  • 它可以用于自然语言数据增强,用于训练机器生成文本数据的变体。

  • 它还可以用于隐写术,将信息隐藏在非机密数据中。

  • 它还可以用作基于文本的游戏或谜题中的机制。

  • 一些字符串操作算法也使用交换字符对。

结论

这就是我们如何交换字符对。这种交换对于加密和解密、文本转换、数据编码、算法开发、字符串回文检测等非常有用。您可以使用以上任何方法来交换字符串中的字符对。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程