如何在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

現實生活中的應用

交換字元對的現實生活應用包括:

  • 它可用於自然語言中的資料增強,以建立用於機器訓練的文字資料變體。

  • 它也可用於隱寫術,以隱藏非秘密資料中的訊息。

  • 它也可作為基於文字的遊戲或謎題中的機制。

  • 一些字串操作演算法也使用交換字元對。

結論

這就是我們交換字元對的方法。這種交換對於加密和解密、文字轉換、資料編碼、演算法開發、字串字謎檢測等很有用。您可以使用上述任何方法來交換字串中存在的字元對。

更新於:2023年9月8日

343 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告