对于正在处理的10,000个特定字符串,我遇到StringIndex
错误。我真的不知道这个字符串是什么问题。我认为这可能是一个特殊的字符问题。
如果我println
字符串,然后将其分配给txt
,然后将txt
传递给函数,则不会出错。我有点困惑。
很抱歉,由于该字符串是受保护的内容,因此我无法发布该字符串,即使我确实以某种方式复制和粘贴了该字符串也可以消除错误的来源。有什么建议吗?
答案 0 :(得分:4)
在Julia中,字符串是按字节而不是字符索引的。您应该使用for c in str
而不是尝试手动编制索引。
答案 1 :(得分:4)
只是扩展。 the Julia manual中解释了如何在Julia中表示String
的细节。
您可以使用eachindex
将有效索引的迭代器添加到String
中。之所以是迭代器,是因为您无法有效地(即在O(1)时间)找到字符串中第i个字符的索引。但是,可以在isascii
上使用String
函数来检查它是否仅由ASCII字符组成(在这种情况下,字节和字符索引相同)。
此外,如果您需要获取字符串中的某个特定字符,通常可能需要多个字符,在这种情况下,first
,last
和chop
函数非常有用(实际上last(first(s, n))
在位置n
处为您提供一个字符;尽管效率不高-迭代eachindex
会分配较少的字符。