我正在尝试读取一个每行包含推文的文件,并将推文的每个字符转换为整数。该文件可以找到here
但是28号出了点问题line在该文件中。当我查看该文件时,我看到该行如下:
Wish she could have told me herself. @NicoleScherzy #nicolescherzinger
#OneLove #myfav #MyQueen :heavy_black_heart:️:heavy_black_heart:️
此外,在读取文件时,我在读取文件时打印出每一行,在这种情况下,该行打印为(为了简化忽略前两段):
Wish she could have told me herself. @NicoleScherzy #nicolescherzinger #OneLove #myfav #MyQueen :heavy_black_heart:️:heavy_black_heart:️
现在,如果我想逐个字符地打印它们,我会收到错误。这是代码和我得到的错误:
x=" Wish she could have told me herself. @NicoleScherzy #nicolescherzinger #OneLove #myfav #MyQueen :heavy_black_heart:️:heavy_black_heart:️"
for i=1:length(x)
println(x[i])
end
.
.
.
INFO: #
INFO: m
INFO: y
INFO: f
INFO: a
INFO: v
INFO:
INFO: #
INFO: M
INFO: y
INFO: Q
INFO: u
INFO: e
INFO: e
INFO: n
INFO:
INFO: :
INFO: h
INFO: e
INFO: a
INFO: v
INFO: y
INFO: _
INFO: b
INFO: l
INFO: a
INFO: c
INFO: k
INFO: _
INFO: h
INFO: e
INFO: a
INFO: r
INFO: t
INFO: :
INFO: ️
ERROR: UnicodeError: invalid character index
in slow_utf8_next(::Array{UInt8,1}, ::UInt8, ::Int64) at ./strings/string.jl:67
in next at ./strings/string.jl:96 [inlined]
in getindex(::String, ::Int64) at ./strings/basic.jl:70
in macro expansion; at ./REPL[2]:1 [inlined]
in anonymous at ./<missing>:?
这到底是什么?为什么h被表示为h,顶部有一个横线,并且错误消息之前有一个空格,应该还有另一个:
最佳答案
字符串和 Unicode 在任何地方都很复杂(因为人类语言很复杂),在 Julia 中也是如此。此外, future 的实现可能会(并且应该)发生变化。从 v0.5/v0.6 开始,在问题中编写循环的方法是
for c in x
println(c)
end
并使用索引,例如:
i = 1
while i<=endof(x)
println(x[i])
i = nextind(x,i)
end
一般来说,从 v0.5/v0.6 开始,您应该熟悉 endof
、nextind
以便在 Julia 中编写正确的字符串操作。 REPL 帮助和 documentation应该覆盖它们。
关于twitter - 读取包含 Twitter 表情符号描述的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46214556/