gpt4 book ai didi

string - 如何使用 Swift 修改字符串中的单个字符?

转载 作者:搜寻专家 更新时间:2023-11-01 06:06:43 25 4
gpt4 key购买 nike

var str: String = "sometext"

for i in str.characters.indices
{
str[i] = "c"
}

print(str)

我收到以下错误:
错误:无法通过下标赋值:下标是 get-only

最佳答案

您收到此错误是因为 Swift String 的下标方法是 get-only 就像它在您的警告中所说的那样。这与数组不同。

  • 数组:

    数组[0]

    array[0] = 0

  • 字符串:

    str[0]

    str[0] = "0"

    str[str.startIndex.advancedBy(0)]

使用 replaceRange 完成您的任务。

示例:

var value = "green red blue"

value.replaceRange(value.startIndex.advancedBy(
6)..<value.startIndex.advancedBy(6 + 3),
with: "yellow")
print(value)

结果:

green yellow blue

另请参阅 Ole Begemann 的这篇精彩博客文章,其中非常详细地解释了 Swift 字符串的工作原理。您还将找到为什么不能在 Swift 字符串上使用下标方法的答案。

Because of the way Swift strings are stored, the String type does not support random access to its Characters via an integer index — there is no direct equivalent to NSStringʼs characterAtIndex: method. Conceptually, a String can be seen as a doubly linked list of characters rather than an array. Article Link

关于string - 如何使用 Swift 修改字符串中的单个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com