• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    教学以及管理操作教程

    教学以及管理操作教程

    ¥1,000.00 ¥100.00
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      教学以及管理操作教程

      教学以及管理操作教程

      ¥1,000.00 ¥100.00
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      老俊俊的生信笔记

      • 首页
      • 博客
      • 老俊俊的生信笔记
      • Julia 笔记之字符串

      Julia 笔记之字符串

      • 发布者 weinfoadmin
      • 分类 老俊俊的生信笔记
      • 日期 2022年5月2日
      测试开头

      Julia 笔记之字符串

      没关注?伸出手指点这里—

      Julia 笔记之字符串
      Julia 笔记之字符串

      1引言

      本文介绍 Julia 中的 字符串 操作。

      内容摘抄自 Think julia 书籍。

      2字符

      单个引号引起的单个字符:

      julia> 'x'
      'x': ASCII/Unicode U+0078 (category Ll: Letter, lowercase)
      julia> '🍌'
      '🍌': Unicode U+01f34c (category So: Symbol, other)
      julia> typeof('x')
      Char

      3多字符字符串

      双引号引得多字符字符串,可以使用中括号以索引取值,注意 julia 中索引以 1 开始:

      julia> fruit = "banana"
      "banana"
      julia> letter = fruit[1]
      'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)

      关键词 begin 和 end 可以取第一个和最后一个字符:

      julia> fruit[end]
      'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)

      中括号里可以使用表达式取值:

      julia> i = 1
      1
      julia> fruit[i+1]
      'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
      julia> fruit[end-1]
      'n': ASCII/Unicode U+006e (category Ll: Letter, lowercase)

      不是整型则会报错:

      julia> letter = fruit[1.5]
      ERROR: MethodError: no method matching getindex(::String, ::Float64)

      4length

      length 函数获取字符串个数:

      julia> fruits = "🍌 🍎 🍐"
      "🍌 🍎 🍐"
      julia> len = length(fruits)
      5

      获取最后一个元素:

      julia> last = fruits[len]
      ' ': ASCII/Unicode U+0020 (category Zs: Separator, space)

      但你可能得不到你想要的。字符串使用 UTF-8 编码。UTF-8 是一种可变宽度编码,这意味着不是所有字符都用相同的字节数编码。

      sizeof 函数可以获取字节数:

      julia> sizeof("🍌")
      4

      因为表情符号编码为 4 个字节,字符串索引是基于字节的,水果的第 5 个元素是 SPACE。这也意味着 UTF-8 字符串的每个字节索引不一定是字符的有效索引。如果你在这样一个无效的字节索引处对字符串进行索引,则会抛出错误:

      julia> fruits[2]
      ERROR: StringIndexError("🍌 🍎 🍐", 2)

      在 fruits 的情况下,字符是一个四字节字符,因此索引 2、3 和 4 无效,下一个字符的索引是 5;下一个有效索引可以由 nextind(fruits, 1)计算,之后的下一个索引可以由 nextind(fruits, 5)计算,依此类推。

      5遍历字符串

      prefixes = "JKLMNOPQ"
      suffix = "ack"

      for letter in prefixes
          println(letter * suffix)
      end

      Jack
      Kack
      Lack
      Mack
      Nack
      Oack
      Pack
      Qack

      6字符串切片

      julia> str = "Julius Caesar";

      julia> str[1:6]
      "Julius"

      使用关键词:

      julia> str[8:end]
      "Caesar"

      如果第二个索引大于第一个,则返回空字符串:

      julia> str[8:7]
      ""

      7字符串不可变

      字符串内容不可改变,使用切片赋值则会报错:

      julia> greeting = "Hello, world!"
      "Hello, world!"
      julia> greeting[1] = 'J'
      ERROR: MethodError: no method matching setindex!(::String, ::Char, ::Int64)

      8字符串插值

      Julia 中可以使用$符号将变量插入到字符串中:

      julia> greet = "Hello"
      "Hello"
      julia> whom = "World"
      "World"
      julia> "$greet, $(whom)!"
      "Hello, World!"

      加上括号可以识别表达式:

      julia> "1 + 2 = $(1 + 2)"
      "1 + 2 = 3"

      9字符串库

      uppercase 函数转换为大写, lowercase则转为小写, titlecase 将首字母转为大写:

      julia> uppercase("Hello, World!")
      "HELLO, WORLD!"

      julia> lowercase("TEST")
      test

      julia> titlecase("title")
      Title

      findfirst 函数查找字符并返回索引:

      julia> findfirst("a", "banana")
      2:2

      julia> findfirst("na", "banana")
      3:4

      可以加个寻找起始位置的索引:

      julia> findnext("na", "banana", 4)
      5:6

      10∈ 操作符

      (in TAB)打出来,判断字符是否在指定的字符串中,返回 true 或 false:

      julia> 'a' ∈ "banana"    # 'a' in "banana"
      true

      11字符串比较

      使用 == 可以判断两个字符串是否相等:

      word = "Pineapple"
      if word == "banana"
          println("All right, bananas.")
      end

      其他关系操作对于按字母顺序排列单词也很有用:

      if word < "banana"
          println("Your word, $word, comes before banana.")
      elseif word > "banana"
          println("Your word, $word, comes after banana.")
      else
          println("All right, bananas.")
      end

      Your word, Pineapple, comes before banana.

      Julia 处理大写字母和小写字母的方式与人们不同。所有的大写字母都在小写字母之前。



      Julia 笔记之字符串


      欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群 哦,数据代码已上传至QQ群,欢迎加入下载。

      群二维码:

      Julia 笔记之字符串


      老俊俊微信:


      Julia 笔记之字符串

      知识星球:


      Julia 笔记之字符串


      所以今天你学习了吗?

      今天的分享就到这里了,敬请期待下一篇!

      最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!

      如果觉得对您帮助很大,赏杯快乐水喝喝吧!



       往期回顾 





      ◀Julia 笔记之数学运算和初等函数

      ◀XAM 包处理 sam 和 bam 文件

      ◀Nature 文章主图结果复现

      ◀windows 也能快速处理 BAM/SAM 大型文件

      ◀Julia 笔记之变量-整数-浮点数

      ◀cell 代码优化测试复现二 (终)

      ◀cell 代码优化测试复现一

      ◀R 语言绘制二维密度相关性散点图

      ◀Julia 的下载安装及配置

      ◀使用 python 进行 Ribo–seq 质控分析 二

      ◀...

      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      R语言学习:阅读《R For Everyone 》(第二版)
      2022年5月2日

      下一篇文章

      高效计算科学研究的十条简单规则
      2022年5月8日

      你可能也喜欢

      8-1651542331
      跟着Nature学绘图(2) 箱线图-累积分布曲线图
      2 5月, 2022
      0-1651542343
      Julia 笔记之数学运算和初等函数
      1 5月, 2022
      7-1651542357
      XAM 包处理 sam 和 bam 文件
      30 4月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?