Swift 程序替换特定索引处的字符


要替换指定索引处的字符,Swift 支持以下方法:

  • 使用 replaceSubrange() 方法。

  • 使用 append() 方法。

  • 使用 replacingCharacters(in:with:) 方法。

使用这些方法,您可以将给定字符串中的任何字符替换为新字符。例如

Input: String = "Pink Bike"
Index = 5 Character = "O"
Output: "Pink Oike "

这里,我们将索引 5 上的字符“B”替换为“O”。

方法 1:使用 replaceSubrange() 方法

要替换给定字符串中指定索引处的字符,我们可以使用 replaceSubrange() 方法。此方法用指定元素替换给定序列或集合中的一系列元素。

语法

func replaceSubrange(subRange: Range, with: NewElemens)

这里,replaceSubrange() 函数接受两个参数:

  • subRange - 我们要替换的一系列元素。它必须包含有效的起始和结束索引。

  • newElements - 将 subRange 替换成的新的元素。或者我们可以称之为替换元素。

算法

  • 步骤 1 - 创建一个字符串。

  • 步骤 2 - 使用 index() 函数查找要替换的字符的有效索引。

  • 步骤 3 - 现在使用 replaceSubrange() 方法将指定的字符替换为新字符。

  • 步骤 4 - 显示输出。

示例

在以下 Swift 程序中,我们将替换特定索引处的字符。因此,我们首先创建一个字符串。然后,我们使用 index() 函数查找要替换的字符的有效索引。之后,我们使用 replaceSubrange() 函数将原始字符替换为指定的新的字符。此函数接受两个参数:范围和新元素。因此,这里我们只替换一个字符,所以我们将 indexValue…indexValue 范围和新的字符“B”传递给它。最后,显示更新后的字符串。

import Foundation
import Glibc

var iStr = "My car color is yellow"

print("Original String:", iStr)

let indexValue = iStr.index(iStr.startIndex, offsetBy: 8)
iStr.replaceSubrange(indexValue...indexValue, with: "B")

print("Modified String:", iStr) 

输出

Original String: My car color is yellow
Modified String: My car cBlor is yellow

方法 2:使用 append() 方法

要替换给定字符串中指定索引处的字符,我们使用带有 enumerated() 方法的 for-in 循环。然后检查当前索引是否等于给定索引。如果是,则使用 append() 函数将原始字符替换为新字符。否则,为所有索引附加原始字符。

语法

func append(NewElement)

这里,append() 函数只接受一个参数,即新的字符或替换字符。

算法

  • 步骤 1 - 创建一个字符串。

  • 步骤 2 - 创建一个变量来存储索引。

  • 步骤 3 - 创建另一个变量来存储新的字符。

  • 步骤 4 - 创建一个空字符串来存储结果字符串。

  • 步骤 5 - 现在使用 enumerated() 方法运行 for-in 循环以遍历每个字符及其各自的索引。

  • 步骤 6 - 检查当前索引是否等于给定索引。如果是,则使用 append() 方法将该索引上的字符替换为新字符。

  • 步骤 7 - 否则,将所有原始字符附加到新字符串中。

  • 步骤 8 - 显示输出。

示例

在以下 Swift 程序中,我们将替换特定索引处的字符。因此,我们首先将创建一个新的字符串、索引和新的字符。然后创建一个空字符串来存储结果。之后,我们将运行一个 for-in 循环来遍历每个字符及其索引,并检查当前索引是否等于给定索引。如果是,则将原始字符替换为新字符并将其附加到结果字符串中。否则,将所有原始字符附加到结果字符串中。最后,显示更新后的字符串。

import Foundation
import Glibc

var inputStr = "Black clouds"
let indexVal = 4
let rChar: Character = "X"

var newStr = ""

for (x, char) in inputStr.enumerated() {
   if x == indexVal {
      newStr.append(rChar)
   } else {
      newStr.append(char)
   }
}
print("Original String:", inputStr)
print("Modified String:", newStr) 

输出

Original String: Black clouds
Modified String: BlacX clouds

方法 3:使用 replacingCharacters() 方法

要替换给定字符串中指定索引处的字符,我们将使用 replacingCharacters() 方法。此方法返回一个新的字符串,其中指定的字符被给定的替换字符替换。

语法

func replacingCharacters(in:InputChar, with: ReplacementChar)

这里,replacingCharacters() 方法接受两个参数:

  • subRange - 我们要替换的一系列字符或字符。

  • ReplacementChar - 我们用来替换指定字符或一系列字符的替换字符。

算法

  • 步骤 1 - 创建一个字符串。

  • 步骤 2 - 使用 index() 函数查找要替换的字符的有效索引。

  • 步骤 3 - 现在使用 replaceSubrange() 方法将指定的字符替换为新字符。

  • 步骤 4 - 显示输出。

示例

在以下 Swift 程序中,我们将替换特定索引处的字符。因此,我们首先将创建一个新的字符串、索引和新的字符。然后创建一个空字符串来存储结果。之后,我们将使用 index() 函数指定起始索引和偏移量以到达所需的索引。然后,我们将使用 replacingCharacters() 方法将指定索引处的字符替换为“@”。并显示输出。

import Foundation
import Glibc

var StringVal = "Meeta is cooking Paratha"
let rCharacter: Character = "@"
let indexValue = 6
let outputStr = ""

print("Original String: ", StringVal)

let indexChar = StringVal.index(StringVal.startIndex, offsetBy: indexValue)..<StringVal.index(StringVal.startIndex, offsetBy: indexValue + 1)

let resultString = StringVal.replacingCharacters(in: indexChar, with: String(rCharacter))

print("Modified String: ", resultString)

输出

Original String:  Meeta is cooking Paratha
Modified String:  Meeta @s cooking Paratha

结论

因此,这就是我们如何替换特定索引处的字符。所有方法都能有效地完成其工作。在使用 replaceSubrange() 和 replacingCharacters() 方法时,您还可以用新字符替换一系列字符,而使用 append() 方法只能替换指定索引处的一个字符。

更新时间: 2023年6月14日

2K+ 阅读量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.