「Mac玩转仓颉内测版26」基础篇6 - 字符类型详解

本篇将介绍 Cangjie 中的字符类型,涵盖字符类型的定义、常见操作、字符编码及其在文本处理中的应用,帮助开发者掌握字符类型的用法。


关键词
  • 字符类型定义
  • 字符操作
  • 字符编码
  • 转义字符
  • 文本处理

一、字符类型概述

在 Cangjie 中,字符类型用于表示单个字符的值,包括字母、数字和符号等单一字符。字符常量使用单引号 括起来。

  • 字符定义:字符类型用 Rune 表示。

示例

let letter: Rune = 'A'
let digit: Rune = '1'
let symbol: Rune = '$'

二、字符的常见操作

Cangjie 支持多种字符操作,以下是常用的字符操作:

操作描述示例
获取字符编码值返回字符的 Unicode 值UInt32(letter)
转换为大写转换为大写字符letter.toAsciiUpperCase()
转换为小写转换为小写字符letter.toAsciiLowerCase()

示例

let letter: Rune = 'A'println("字符编码: ${UInt32(letter)}")             // 输出: 字符编码: 65
println("转为小写: ${letter.toAsciiLowerCase()}")  // 输出: 转为小写: a

三、字符编码与 Unicode

Cangjie 中的字符基于 Unicode 编码,可以通过 UInt32() 函数获取字符的 Unicode 编码值。该编码方式确保字符在不同系统和平台间具有一致性。

示例

let letter: Rune = 'Z'
let unicodeValue = UInt32(letter)println("字符 'Z' 的 Unicode 编码值: ${unicodeValue}")

输出:

字符 'Z' 的 Unicode 编码值: 90

四、转义字符

在字符串中使用特殊字符时,需要使用转义字符。Cangjie 支持以下常用转义字符:

转义字符描述
\n换行
\t制表符
单引号
"双引号
\反斜杠

示例

let text = "Hello,\nCangjie!"println(text)

输出:

Hello,
Cangjie!

五、字符类型的应用场景

字符类型在文本处理和解析中特别有用,以下是常见应用场景:

5.1 字符串处理

字符可以与字符串结合使用,在字符串处理中实现诸如字符查找、替换等功能。

示例

let text = "Hello, Cangjie!"
let firstChar = text[0]println("字符串的第一个字符: ${Rune(firstChar)}")

输出:

字符串的第一个字符: H
5.2 数据解析

在解析文本数据时,字符类型可以用来逐个读取字符,实现自定义的格式解析。例如,解析数字或标点符号。

示例

let symbol: Rune = '5'if (symbol.isAsciiNumber()) {println("${symbol} 是一个数字字符")
} else {println("${symbol} 不是一个数字字符")
}

输出:

5 是一个数字字符

小结

本篇介绍了 Cangjie 中的字符类型,涵盖字符的定义、常见操作、字符编码及其在文本处理中的应用,帮助开发者熟悉字符操作和编码。


下篇预告

下一篇将介绍 Cangjie 的 字符串类型,详细讲解字符串的操作、拼接及在文本处理中的应用,敬请关注 「Mac玩转仓颉内测版27」基础篇7 - 字符串类型详解


上一篇: 「Mac玩转仓颉内测版25」基础篇5 - 布尔类型详解
下一篇:「Mac玩转仓颉内测版27」基础篇7 - 字符串类型详解

作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=212
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/476103.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOs DevEco Studio小技巧31--卡片的生命周期与卡片的开发

Form Kit简介 Form Kit(卡片开发服务)提供一种界面展示形式,可以将应用的重要信息或操作前置到服务卡片(以下简称“卡片”),以达到服务直达、减少跳转层级的体验效果。卡片常用于嵌入到其他应用&#xff0…

SSRF漏洞利用

2.漏洞利用 2.1 SSRF中URL的伪协议 file:// 从⽂件系统中获取⽂件内容,如,file:///etc/passwd dict:// 字典服务器协议,访问字典资源,如dict://ip:6379/info sftp:// ssh⽂件传输协议或安全⽂件传输协议 ldap:// 轻量级⽬录访问…

nacos镜像启动时候报Public Key Retrieval is not allowed

在nacos的配置文件里加上一句allowPublicKeyRetrievaltrue

【pytorch-04】:线性回归案例(手动构建)

文章目录 1 构建数据集2 构建假设函数3 损失函数4 优化方法5 训练函数6.总结 1 构建数据集 为什么构建数据加载器? 在进行训练的时候都是采用的不是全部的数据,而是采用一个batch_size的数据进行训练,每次向模型当中送入batch_size数据&#…

实验室管理效率提升:Spring Boot技术的力量

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

STM32H7开发笔记(2)——H7外设之多路定时器中断

STM32H7开发笔记(2)——H7外设之多路定时器中断 文章目录 STM32H7开发笔记(2)——H7外设之多路定时器中断0.引言1.CubeMX配置2.软件编写 0.引言 本文PC端采用Win11STM32CubeMX4.1.0.0Keil5.24.2的配置,硬件使用STM32H…

springboot基于微信小程序的旧衣回收系统的设计与实现

摘 要 微信小程序的旧衣回收系统是一种专为环保生活设计的应用软件。这款小程序的主要功能包括:系统首页、个人中心、用户管理、回收人员管理、旧衣服分类管理、旧衣信息管理、回收预约管理、回收派单管理、回收订单管理、积分商品管理、积分兑换管理、管理员管理、…

路由缓存后跳转到新路由时,上一路由中的tip信息框不销毁问题解决

上一路由tip信息框不销毁问题解决 路由缓存篇问题描述及截图解决思路关键代码 路由缓存篇 传送门 问题描述及截图 路由缓存后跳转新路由时,上一个路由的tip信息框没销毁。 解决思路 在全局路由守卫中获取DOM元素,通过css去控制 关键代码 修改文…

40分钟学 Go 语言高并发:并发下载器开发实战教程

并发下载器开发实战教程 一、系统设计概述 1.1 功能需求表 功能模块描述技术要点分片下载将大文件分成多个小块并发下载goroutine池、分片算法断点续传支持下载中断后继续下载文件指针定位、临时文件管理进度显示实时显示下载进度和速度进度计算、速度统计错误处理处理下载过…

【前端】JavaScript中的indexOf()方法详解:基础概念与背后的应用思路

博客主页: [小ᶻZ࿆] 本文专栏: 前端 文章目录 💯前言💯什么是indexOf()方法?参数解释返回值示例 💯indexOf() 方法的工作原理💯特殊案例:undefined 的处理示例代码图示解释 💯i…

HarmonyOS4+NEXT星河版入门与项目实战------Button组件

文章目录 1、控件图解2、案例实现1、代码实现2、代码解释3、运行效果4、总结1、控件图解 这里我们用一张完整的图来汇整 Button 的用法格式、属性和事件,如下所示: 按钮默认类型就是胶囊类型。 2、案例实现 这里我们实现一个根据放大和缩小按钮来改变图片大小的功能。 功…

WPF窗体基本知识-笔记-命名空间

窗体程序关闭方式 命名空间:可以理解命名空间的作用为引用下面的控件对象 给控件命名:一般都用x:Name,也可以用Name但是有的控件不支持 布局控件(容器)的类型 布局控件继承于Panel的控件,其中下面的border不是布局控件,panel是抽象类 在重叠的情况下,Zindex值越大的就在上面 Z…

【Qt】QComboBox设置默认显示为空

需求 使用QComboBox,遇到一个小需求是,想要设置未点击出下拉列表时,内容显示为空。并且不想在下拉列表中添加一个空条目。 实现 使用setPlaceholderText()接口。我们先来看下帮助文档: 这里说的是,placeholderText是…

音频信号采集前端电路分析

音频信号采集前端电路 一、实验要求 要求设计一个声音采集系统 信号幅度:0.1mVpp到1Vpp 信号频率:100Hz到16KHz 搭建一个带通滤波器,滤除高频和低频部分 ADC采用套件中的AD7920,转换率设定为96Ksps ;96*161536 …

[开源]1.2K star!中后台方向的低代码可视化平台,超赞!

大家好,我是JavaCodexPro! “时间就是金钱,效率就是生命”,快速搭建高质量中后台的低代码可视化搭建平台尤为重要! 今天JavaCodexPro给大家分享一款超赞的低代码可视化搭建平台 - Marsview ,旨在简化开发…

Leetcode 完全二叉树的节点个数

不讲武德的解法 java 实现 class Solution {public int countNodes(TreeNode root) {if(root null) return 0;return countNodes(root.left) countNodes(root.right) 1;} }根据完全二叉树和满二叉树的性质做 class Solution {public int countNodes(TreeNode root) {if (r…

基于CVE安全公告号,全面修复麒麟ARM系统OpenSSH漏洞

前言:负责的其中一个从0开始搭建的某生产项目上线前需要做青藤安全扫描,过了后才允许上线,该项目从操作系统、中间件、数据库、容器等全国产信创化,公司公告为CVE安全公告号,而修复漏洞的责任归我,需要根据…

【每日 C/C++ 问题】

一、什么是 C 中的初始化列表?它的作用是什么? 作用:c提供了初始化列表语法,用来初始化属性 语法:构造函数():属性1(值1),属性2(值…

【前端知识】Javascript前端框架Vue入门

前端框架VUE入门 概述基础语法介绍组件特性组件注册Props 属性声明事件组件 v-model(双向绑定)插槽Slots内容与出口 组件生命周期样式文件使用1. 直接在<style>标签中写CSS2. 引入外部CSS文件3. 使用CSS预处理器4. 在main.js中全局引入CSS文件5. 使用CSS Modules6. 使用P…

【代码pycharm】动手学深度学习v2-04 数据操作 + 数据预处理

数据操作 数据预处理 1.数据操作运行结果 2.数据预处理实现运行结果 第四课链接 1.数据操作 import torch # 张量的创建 x1 torch.arange(12) print(1.有12个元素的张量&#xff1a;\n,x1) print(2.张量的形状&#xff1a;\n,x1.shape) print(3.张量中元素的总数&#xff1…