微信公众号:Julia语言
每周一三五更新Julia语言;
每周二四六更新Python进阶;
字符串基础
字符串文本应放在双引号 "..."
或三个双引号 """..."""
中间:
julia> str = "Hello, world.\n"
"Hello, world.\n"
julia> """Contains "quote" characters"""
"Contains \"quote\" characters"
使用索引从字符串提取字符:
julia> str[1]
'H': ASCII/Unicode U+0048 (category Lu: Letter, uppercase)
julia> str[6]
',': ASCII/Unicode U+002c (category Po: Punctuation, other)
julia> str[end]
'\n': ASCII/Unicode U+000a (category Cc: Other, control)
Julia 中的索引都是从 1 开始的,最后一个元素的索引与字符串长度相同,都是 n 。
在任何索引表达式中,关键词 end 都是最后一个索引值(由 endof(str) 计算得到)的缩写。可以对字符串做
end 算术或其它运算:
julia> str[end-1]
'.': ASCII/Unicode U+002e (category Po: Punctuation, other)
julia> str[end÷2]
' ': ASCII/Unicode U+0020 (category Zs: Separator, space)
索引小于 1 或者大于 end ,会提示错误:
julia> str[0]
ERROR: BoundsError: attempt to access "Hello, world.\n"
at index [0]
[...]
julia> str[end+1]
ERROR: BoundsError: attempt to access "Hello, world.\n"
at index [15]
Stacktrace:
[...]
使用范围索引来提取子字符串(左右两边都是闭,也就是都包括)
julia> str[4:9]
"lo, wo"
julia> str[1:2]
"He"
str[k] 和 str[k:k] 的显示的结果不同:
julia> str[6]
',': ASCII/Unicode U+002c (category Po: Punctuation, other)
julia> str[6:6]
","
前者是类型为 Char 的单个字符,后者为仅有一个字符的字符串。在 Julia 中这两者完全不同。
范围索引会复制原始字符串的选定部分。 使用SubString类型创建字符串视图,例如:
julia> str = "long string"
"long string"
julia> substr = SubString(str, 1, 4)
"long"
julia> typeof(substr)
SubString{String}
欢迎关注微信公众账号Julia语言.jpg
点击阅读原文可查看历史文章
网友评论