• julia笔记:字符和字符串


    1 字符

    • Char类型的值代表单个字符
    1. c='a'
    2. #'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
    3. typeof(c)
    4. #Char
    • 将 Char 转换为其对应的整数值,即 Unicode 代码
    1. c=Int(c)
    2. c
    3. #97
    4. typeof(c)
    5. #Int64
    • 将一个整数值(Unicaode)转回 Char
    1. Char(97)
    2. #'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
    • 字符也可以进行
    1. 'A' < 'a'
    2. #true
    3. 'A' +1
    4. #'B': ASCII/Unicode U+0042 (category Lu: Letter, uppercase)

    2 字符串

    2.1 创建

    由双引号或三重双引号分隔

    • 双引号 (") 通常用于定义单行字符串
    1. str="Hello world"
    2. str
    3. # "Hello world"
    •  三重双引号 (""") 可以用于定义多行字符串。
      • 在这种情况下,可以在一个字符串中包含多行文本,而无需使用明确的换行字符或连接多个单行字符串。
    1. s = """This is a multiline
    2. string in Julia."""
    3. s
    4. #"This is a multiline\nstring in Julia."
    • 当需要在字符串中包含双引号等转义字符时,使用三重双引号可以更加方便,因为你不需要转义内部的双引号 
    1. s = """He said, "Hello, Julia!" without any issues."""
    2. s
    3. #"He said, \"Hello, Julia!\" without any issues."
    •  在字符串中,如果一行内容太长,可以在换行之前加上反斜杠 (\) 来将其分割。
      • 使用反斜杠后,实际的字符串内容不会包含换行符
      • 这样可以使代码更易读,同时不改变字符串的实际内容。
    1. str="Hello \
    2. world"
    3. str
    4. #"Hello world"

    2.2 索引

    可以使用数字(索引从1开始),也可以是begin和end(他们俩可以视作普通值,可以直接在上面进行计算)

    1. str="Hello world"
    2. str
    3. #"Hello world"
    4. str[begin]
    5. #'H': ASCII/Unicode U+0048 (category Lu: Letter, uppercase)
    6. str[1]
    7. #'H': ASCII/Unicode U+0048 (category Lu: Letter, uppercase)
    8. str[end]
    9. #'d': ASCII/Unicode U+0064 (category Ll: Letter, lowercase)
    10. str[begin*3]
    11. #'l': ASCII/Unicode U+006C (category Ll: Letter, lowercase)
    • 使用小于 begin (1) 或大于 end 的索引会引发错误:
    1. str[begin-1]
    2. '''
    3. BoundsError: attempt to access 11-codeunit String at index [0]
    4. Stacktrace:
    5. [1] checkbounds
    6. @ .\strings\basic.jl:216 [inlined]
    7. [2] codeunit
    8. @ .\strings\string.jl:117 [inlined]
    9. [3] getindex(s::String, i::Int64)
    10. @ Base .\strings\string.jl:238
    11. [4] top-level scope
    12. @ In[48]:1
    13. '''
    14. str[end+1]
    15. '''
    16. BoundsError: attempt to access 11-codeunit String at index [12]
    17. Stacktrace:
    18. [1] checkbounds
    19. @ .\strings\basic.jl:216 [inlined]
    20. [2] codeunit
    21. @ .\strings\string.jl:117 [inlined]
    22. [3] getindex(s::String, i::Int64)
    23. @ Base .\strings\string.jl:238
    24. [4] top-level scope
    25. @ In[49]:1
    26. '''
    • 可以使用范围索引来提取字符串(左闭右闭)
    1. str[3:4]
    2. #"ll"
    • 表达式 str[k] 和 str[k:k] 不会给出相同的结果:
      • 前者是一个 Char 类型的单个字符,而后者是一个恰好只包含一个字符的字符串

    2.3 拼接

    • 使用string拼接
    1. greet = "Hello"
    2. whom = "world"
    3. string(greet, ", ", whom, ".\n")
    4. #"Hello, world.\n"
    • 也使用*用于字符串级联
    1. greet = "Hello"
    2. whom = "world"
    3. greet * ", " * whom * ".\n"
    4. #"Hello, world.\n"
    • 使用$插值进行拼接
    1. greet = "Hello"
    2. whom = "world"
    3. "$greet, $whom.\n"

    2.4 其他方法

    findfirst

    搜索特定字符第一次出现的索引

    findlast

    搜索特定字符最后一次出现的索引

    findnext

    搜索特定偏移处之后,某字符出现的索引

    findprev

    搜索特定偏移处之前,某字符出现的索引

    occursin

    检查在字符串中某子字符串可否找到

    repeat

    字符串重复多次

    join 

    拼接

    像第一种情况:每个字符串之间拼接的是对应的字符(串)

    第二种情况,join后面只有一个参数,那么所有字符串都用这个参数拼接

    length

  • 相关阅读:
    让两个电脑通信的方法(TCP连接,UDP连接,C/S架构)
    申请免费 SSL 证书为您的小程序加密通信
    华为机试真题 C++ 实现【考勤信息】
    Centos 7rc.local脚本命令开机不执行及指定用户启动的方法
    c#使用UDP进行聊天通信
    redis进阶:redis主从架构原理及搭建
    QT基础教程(QT中的文件操作)
    云游戏下,会带来哪些技术变革
    个人数学建模算法库之图的最小生成树模型
    计算机视觉全系列实战教程:(八)图像变换-点运算、灰度变换、直方图变换
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/133974706