如何在Swift中交換一對(duì)字符
交換一對(duì)字符是指在給定字符串中交換兩個(gè)字符的位置。愛(ài)掏網(wǎng) - it200.com這個(gè)操作常常用于各種編程語(yǔ)言和應(yīng)用程序中來(lái)操作數(shù)據(jù)。愛(ài)掏網(wǎng) - it200.com
例子
輸入
“mumbai”
輸出
umbmia
輸入
“Prita”
輸出
rPtia
在這里,我們將給定的字符串分成一對(duì)字符,如“mumbai”: “mu”,“mb”,“ai”。愛(ài)掏網(wǎng) - it200.com現(xiàn)在我們交換字符的位置:“um”,“bm”,“ia”并創(chuàng)建結(jié)果字符串:“umbmia”。愛(ài)掏網(wǎng) - it200.com對(duì)于輸入2類似。愛(ài)掏網(wǎng) - it200.com
在Swift中,我們可以使用以下方法交換給定字符串中的字符對(duì)的位置:
- 通過(guò)轉(zhuǎn)換為一個(gè)數(shù)組
-
使用索引
方法1:轉(zhuǎn)換為數(shù)組后交換字符對(duì)
要交換給定字符串中的字符對(duì),我們首先使用Array()初始化器將給定字符串轉(zhuǎn)換為數(shù)組,然后交換字符對(duì)的位置,然后使用String()初始化器將其再次轉(zhuǎn)換為字符串。愛(ài)掏網(wǎng) - it200.com
算法
步驟1 ? 創(chuàng)建一個(gè)函數(shù)來(lái)交換字符對(duì)。愛(ài)掏網(wǎng) - it200.com
步驟2 ? 在函數(shù)內(nèi)部,我們將字符串轉(zhuǎn)換為字符數(shù)組。愛(ài)掏網(wǎng) - it200.com
步驟3 ? 使用stride()函數(shù)的for-in循環(huán)來(lái)以兩個(gè)字符為一組迭代并交換它們的位置。愛(ài)掏網(wǎng) - it200.com
步驟4 ? 現(xiàn)在將最終的數(shù)組轉(zhuǎn)換回字符串。愛(ài)掏網(wǎng) - it200.com
步驟5 ? 返回結(jié)果字符串。愛(ài)掏網(wǎng) - it200.com
步驟6 ? 創(chuàng)建一個(gè)測(cè)試字符串。愛(ài)掏網(wǎng) - it200.com
步驟7 ? 現(xiàn)在調(diào)用函數(shù)并將測(cè)試字符串傳遞給它。愛(ài)掏網(wǎng) - it200.com
步驟8 ? 顯示輸出。愛(ài)掏網(wǎng) - it200.com
示例
在下面的Swift程序中,我們將交換字符對(duì)。愛(ài)掏網(wǎng) - it200.com所以為此,我們創(chuàng)建了一個(gè)名為swappingPairsOfCharacters()的函數(shù)。愛(ài)掏網(wǎng) - it200.com該函數(shù)將輸入字符串作為參數(shù),然后使用Array()初始化器將輸入字符串轉(zhuǎn)換為字符數(shù)組。愛(ài)掏網(wǎng) - it200.com然后,它以兩個(gè)字符為一組進(jìn)行迭代,并使用swapAt()函數(shù)交換它們的位置。愛(ài)掏網(wǎng) - it200.com迭代完成后,最終的數(shù)組將使用String()初始化器轉(zhuǎn)換回字符串。愛(ài)掏網(wǎng) - it200.com
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:使用索引交換字符對(duì)
在這種方法中,我們將使用字符的索引值來(lái)交換字符對(duì)。愛(ài)掏網(wǎng) - it200.com我們使用index()、startIndex、endIndex等方法和屬性來(lái)獲取字符的索引,并將結(jié)果附加到新字符串中。愛(ài)掏網(wǎng) - it200.com
算法
步驟1 - 創(chuàng)建一個(gè)函數(shù)來(lái)交換字符對(duì)。愛(ài)掏網(wǎng) - it200.com
步驟2 - 在函數(shù)內(nèi)部,創(chuàng)建一個(gè)空字符串來(lái)存儲(chǔ)結(jié)果字符串,并創(chuàng)建一個(gè)變量來(lái)跟蹤給定字符串的當(dāng)前位置。愛(ài)掏網(wǎng) - it200.com
步驟3 - 然后遍歷給定字符串中的每個(gè)字符的索引。愛(ài)掏網(wǎng) - it200.com
步驟4 - 在循環(huán)內(nèi)部,使用index()方法找到下一個(gè)字符的索引。愛(ài)掏網(wǎng) - it200.com如果下一個(gè)字符在范圍內(nèi),則繼續(xù)循環(huán)進(jìn)行字符交換,并將交換后的字符添加到結(jié)果字符串中。愛(ài)掏網(wǎng) - it200.com
步驟5 - 最后返回結(jié)果字符串。愛(ài)掏網(wǎng) - it200.com
步驟6 - 創(chuàng)建一個(gè)測(cè)試字符串。愛(ài)掏網(wǎng) - it200.com
步驟7 - 現(xiàn)在調(diào)用函數(shù)并將測(cè)試字符串傳遞給它。愛(ài)掏網(wǎng) - it200.com
步驟8 - 顯示輸出。愛(ài)掏網(wǎng) - it200.com
示例
在下面的Swift程序中,我們將交換字符對(duì)。愛(ài)掏網(wǎng) - it200.com為此,我們創(chuàng)建了一個(gè)名為swapPairsOfCharacters()的函數(shù)。愛(ài)掏網(wǎng) - it200.com該函數(shù)以輸入字符串作為參數(shù),然后遍歷字符串的每個(gè)字符。愛(ài)掏網(wǎng) - it200.com在循環(huán)內(nèi)部,我們首先使用index()函數(shù)找到下一個(gè)索引,同時(shí)還檢查下一個(gè)索引是否在給定范圍內(nèi),如果是,則繼續(xù)循環(huán)以交換字符。愛(ài)掏網(wǎng) - it200.com它提取兩個(gè)要交換的字符,然后使用append()函數(shù)將第二個(gè)字符首先添加到結(jié)果字符串中,然后添加第一個(gè)字符。愛(ài)掏網(wǎng) - it200.com如果下一個(gè)字符超出輸入字符串的結(jié)束位置,則循環(huán)將最后一個(gè)字符原樣追加到結(jié)果字符串的末尾。愛(ài)掏網(wǎng) - it200.com最后,返回結(jié)果字符串。愛(ài)掏網(wǎng) - it200.com
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
真實(shí)應(yīng)用
交換字符對(duì)的真實(shí)應(yīng)用包括:
- 它可以用于自然語(yǔ)言數(shù)據(jù)增強(qiáng),用于訓(xùn)練機(jī)器生成文本數(shù)據(jù)的變體。愛(ài)掏網(wǎng) - it200.com
-
它還可以用于隱寫(xiě)術(shù),將信息隱藏在非機(jī)密數(shù)據(jù)中。愛(ài)掏網(wǎng) - it200.com
-
它還可以用作基于文本的游戲或謎題中的機(jī)制。愛(ài)掏網(wǎng) - it200.com
-
一些字符串操作算法也使用交換字符對(duì)。愛(ài)掏網(wǎng) - it200.com
結(jié)論
這就是我們?nèi)绾谓粨Q字符對(duì)。愛(ài)掏網(wǎng) - it200.com這種交換對(duì)于加密和解密、文本轉(zhuǎn)換、數(shù)據(jù)編碼、算法開(kāi)發(fā)、字符串回文檢測(cè)等非常有用。愛(ài)掏網(wǎng) - it200.com您可以使用以上任何方法來(lái)交換字符串中的字符對(duì)。愛(ài)掏網(wǎng) - it200.com