Julia 字符串

Julia 中处理 ASCII 文本简洁高效,也可以处理 Unicode 。使用 C 风格的字符串代码来处理 ASCII 字符串,性能和语义都没问题。如果这种代码遇到非 ASCII 文本,会提示错误,而不是显示乱码。这时,修改代码以兼容非 ASCII 数据也很简单。

关于 Julia 字符串,有一些值得注意的高级特性:

  • String 是个抽象类型,不是具体类型
  • Julia 的 Char 类型代表单字符,是由 32 位整数表示的 Unicode 码位
  • 与 Java 中一样,字符串不可更改:String 对象的值不能改变。要得到不同的字符串,需要构造新的字符串
  • 概念上,字符串是从索引值映射到字符的部分函数,对某些索引值,如果不是字符,会抛出异常
  • Julia 支持全部 Unicode 字符: 文本字符通常都是 ASCII 或 UTF-8 的,但也支持其它编码

字符

Char 表示单个字符:它是 32 位整数,值参见 Unicode 码位 。 Char 必须使用单引号:

julia> 'x'
'x'

julia> typeof(ans)
Char
可以把 Char 转换为对应整数值:

julia> int('x')
120

julia> typeof(ans)
Int64
在 32 位架构上, typeof(ans) 的类型为 Int32 。也可以把整数值转换为 Char :

julia> char(120)
'x'
并非所有的整数值都是有效的 Unicode 码位,但为了性能, char 一般不检查其是否有效。如果你想要确保其有效,使用 is_valid_char 函数:

julia> char(0x110000)
'\U110000'

julia> is_valid_char(0x110000)
false
目前,有效的 Unicode 码位为,从 U+00 至 U+d7ff,以及从 U+e000 至 U+10ffff

可以用单引号包住 \u 及跟着的最多四位十六进制数,或者 \U 及跟着的最多八位(有效的字符,最多需要六位)十六进制数,来输入 Unicode 字符:

julia> '\u0'
'\0'

julia> '\u78'
'x'

julia> '\u2200'
'∀'

julia> '\U10ffff'
'\U10ffff'

字符串基础

字符串文本应放在双引号 "..." 或三个双引号 """...""" 中间:

julia> str = "Hello, world.\n"
"Hello, world.\n"

julia> """Contains "quote" characters"""
"Contains \"quote\" characters"
使用索引从字符串提取字符:

julia> str[1]
'H'

julia> str[6]
','

julia> str[end]
'\n'

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2019

备案号:京ICP备15003423号-3