Julia之初体验(八)中文字符
中文一般采用Unicode和 UTF-8编码。
julia> s = "\u2200 x \u2203 y"
"∀ x ∃ y"julia> p="你是好人"
"你是好人"
把UTF-8(中文)字符串切片时到注意:字符∀是三个字节字符,因此索引2和3无效,下一个字符的索引为4;该下一个有效索引可以由nextind(s,1)计算,其后的下一个索引可以由nextind(s,4)计算,依此类推。
julia> s[1]
'∀': Unicode U+2200 (category Sm: Symbol, math)julia> s[2]
ERROR: StringIndexError("∀ x ∃ y", 2)
[...]julia> s[3]
ERROR: StringIndexError("∀ x ∃ y", 3)
Stacktrace:
[...]julia> s[4]
' ': ASCII/Unicode U+0020 (category Zs: Separator, space)
julia> s[end-1]
' ': ASCII/Unicode U+0020 (category Zs: Separator, space)julia> s[end-2]
ERROR: StringIndexError("∀ x ∃ y", 9)
Stacktrace:
[...]julia> s[prevind(s, end, 2)]
'∃': Unicode U+2203 (category Sm: Symbol, math)
julia> s[1:1]
"∀"julia> s[1:2]
ERROR: StringIndexError("∀ x ∃ y", 2)
Stacktrace:
[...]julia> s[1:4]
"∀ "julia> p[1]
'你': Unicode U+4F60 (category Lo: Letter, other)julia> p[2]
ERROR: StringIndexError("你是好人", 2)
Stacktrace:[1] string_index_err(::String, ::Int64) at .\strings\string.jl:12[2] getindex_continued(::String, ::Int64, ::UInt32) at .\strings\string.jl:220[3] getindex(::String, ::Int64) at .\strings\string.jl:213[4] top-level scope at none:0julia> p[4]
'是': Unicode U+662F (category Lo: Letter, other)
为了不出错,还是用迭代器吧。这里面把错误的地方忽略了。
julia> for i = firstindex(s):lastindex(s)tryprintln(s[i])catch# ignore the index errorendend
还有一个更好的方法,字符串本来就可以作为迭代器使用。注意:for c in s这个后面没有冒号,与python不同。
julia> for c in sprintln(c)end
∀x∃yjulia> for i in pprint(i)end
你是好人python>for c in s:print(c)
∀x∃y
如果需要获取字符串的有效索引,则可以使用nextind和prevind函数递增/递减到下一个/上一个有效索引。 还可以使用eachindex函数来迭代有效的字符索引。collect()函数是用来创建array。
julia> collect(eachindex(s))
7-element Array{Int64,1}:145671011
Julia之初体验(八)中文字符相关推荐
- CentOS 初体验八:传输本地文件到CentOS
转载请注明出处http://blog.csdn.net/zhaoyanjun6/article/details/79006748 本文出自[赵彦军的博客] scp 命令 命令: scp 本地文件路径 ...
- [Greenfoot中文教程] 01 - Greenfoot初体验
CH 1 Greenfoot初体验 1.认识Greenfoot界面 OK,打开我们之前建立好的Greenfoot空白工程,我们首先将看到这样一个界面. 首先我们就来认识一下Greenfoot的这个主 ...
- 我的Go+语言初体验——(3)Go+ 语言数据类型
我的Go+语言初体验--(3)Go+ 语言数据类型 "我的Go+语言初体验" | 征文活动进行中- Go+ 语言刚刚发布,网络上还很难找到各种的支持文档和编程指南,使初学者很难深入 ...
- shell 清楚空格_Cygwin系列(五):Shell命令行初体验
► 本文共5700余字,预计阅读时间15分钟,本文知乎链接:Cygwin系列(五):Shell命令行初体验,本文同步发布于微信公众号. 前一篇文章Cygwin系列(四):一步一步搭建Cygwin最小系 ...
- rockyLinux 初体验PostgreSQL15详细安装教程
原创计划 | 总第 11 期(2023 第 09 期)知识分享 rockyLinux 安装 PostgreSQL 15.2 作者 | 文正耕耘(ID:dywangk) 彼时,PostgreSQL 已经 ...
- 【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
- python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨
python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...
- 红黑树做中文字符输入法
前言 输入一个字符,匹配中文字符的输入法, 例如输入a,输出:啊阿,然后再输入n,即变成an,输出:鞍氨安俺按暗岸胺案, 要求要有搜索的接口,应该如何设计呢? 答案: 红黑树 步骤 1. 设计红黑树的 ...
- 小白如何入门Python?记我的Python初体验
Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 文章目录 前言 一.初识Python 1.Python概述 1.1 Python的创始人 1.2 简介 2.P ...
最新文章
- 【MySQL】简单命令总结
- 2021年人工神经网络第四次作业 - 第三题Cifar10
- numpy vsplit
- java内部方法调用_Java学习之类方法的外部和内部调用
- pyqt5讲解10:布局管理讲解大全
- Maven Git发布
- IDDD 实现领域驱动设计-理解限界上下文
- 基于Java毕业设计医院诊疗信息管理源码+系统+mysql+lw文档+部署软件
- python实现傅里叶变换和反变换
- c 语言编写的一元二次方程的根,C#程式求一元二次方程根
- 程序员延寿指南-活着才能输出
- 黑天鹅mobi_破坏我们系统的因素:黑天鹅分类法
- 网站如何防止被篡改?
- 今天我们来聊聊,如何做好第三方系统对接
- 配置pcie网卡指示灯
- Spring、Mybatis、Spring MVC整合实例
- 3010基于二叉链表的二叉树高度的计算
- Apache-Apollo-MQTT最新地址
- SharePoint 2013(rtm版) 安装与配置
- 「金融帝国实验室」(Capitalism Lab)现行官方正版游戏『销售政策指引』(2021.07.23-08.15)