如何在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
現實生活中的應用
交換字元對的現實生活應用包括:
它可用於自然語言中的資料增強,以建立用於機器訓練的文字資料變體。
它也可用於隱寫術,以隱藏非秘密資料中的訊息。
它也可作為基於文字的遊戲或謎題中的機制。
一些字串操作演算法也使用交換字元對。
結論
這就是我們交換字元對的方法。這種交換對於加密和解密、文字轉換、資料編碼、演算法開發、字串字謎檢測等很有用。您可以使用上述任何方法來交換字串中存在的字元對。