朱莉娅为什么给我StringIndex错误?

时间:2020-04-06 14:57:26

标签: string julia

对于正在处理的10,000个特定字符串,我遇到StringIndex错误。我真的不知道这个字符串是什么问题。我认为这可能是一个特殊的字符问题。

如果我println字符串,然后将其分配给txt,然后将txt传递给函数,则不会出错。我有点困惑。

很抱歉,由于该字符串是受保护的内容,因此我无法发布该字符串,即使我确实以某种方式复制和粘贴了该字符串也可以消除错误的来源。有什么建议吗?

2 个答案:

答案 0 :(得分:4)

在Julia中,字符串是按字节而不是字符索引的。您应该使用for c in str而不是尝试手动编制索引。

答案 1 :(得分:4)

只是扩展。 the Julia manual中解释了如何在Julia中表示String的细节。

您可以使用eachindex将有效索引的迭代器添加到String中。之所以是迭代器,是因为您无法有效地(即在O(1)时间)找到字符串中第i个字符的索引。但是,可以在isascii上使用String函数来检查它是否仅由ASCII字符组成(在这种情况下,字节和字符索引相同)。

此外,如果您需要获取字符串中的某个特定字符,通常可能需要多个字符,在这种情况下,firstlastchop函数非常有用(实际上last(first(s, n))在位置n处为您提供一个字符;尽管效率不高-迭代eachindex会分配较少的字符。

相关问题