如何在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
现实生活中的应用
交换字符对的现实生活应用包括:
它可用于自然语言中的数据增强,以创建用于机器训练的文本数据变体。
它也可用于隐写术,以隐藏非秘密数据中的消息。
它也可作为基于文本的游戏或谜题中的机制。
一些字符串操作算法也使用交换字符对。
结论
这就是我们交换字符对的方法。这种交换对于加密和解密、文本转换、数据编码、算法开发、字符串字谜检测等很有用。您可以使用上述任何方法来交换字符串中存在的字符对。