当前位置: 首页 > article >正文

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

本篇将介绍 Cangjie 中的字符串类型,包括字符串的定义、字面量形式、插值表达、常用操作及应用场景,帮助开发者熟练掌握字符串的使用。


关键词
  • 字符串类型定义
  • 字符串字面量
  • 插值字符串
  • 字符串拼接
  • 常用操作

一、字符串类型概述

在 Cangjie 中,字符串是一组 Unicode 字符的集合,用于表示文本数据。字符串类型用 String 表示,是 Cangjie 处理文本的主要工具。

  • 字符串定义:使用 String 类型定义文本数据。

示例

let welcomeMessage: String = "Welcome to Cangjie!"

二、字符串字面量

Cangjie 中的字符串字面量有三种形式:单行字符串字面量多行字符串字面量多行原始字符串字面量

2.1 单行字符串字面量

单行字符串字面量用单引号 或双引号 " 包裹,内容必须在一行内。可以包含任意字符,除了未转义的双引号 " 或孤立的 ****。

示例

let s1: String = "Cangjie Tutorial"
let s2: String = 'Let\'s start!'
let s3: String = "\"Welcome to Cangjie\""
let s4: String = 'Path: C:\\Program Files\\Cangjie'
2.2 多行字符串字面量

多行字符串字面量用三个单引号或双引号包裹,支持跨行输入,适合长文本或段落内容。

示例

let s1: String = """
This is a tutorial
for the Cangjie language.
Enjoy learning!
"""
2.3 多行原始字符串字面量

多行原始字符串字面量通过 # 前缀并配合引号表示,支持跨行输入且内容保持原样,转义字符不会被解析。

示例

let rawStr: String = #"""
Path without escapes: C:\Users\NewUser
Multi-line text preserved as-is.
"""#

输出:

""
    Path without escapes: C:\Users\NewUser
    Multi-line text preserved as-is.
    ""

三、插值字符串

插值字符串使用 ∗ ∗ 表达式在字符串中嵌入变量或计算结果,简化了字符串拼接操作。 ∗ ∗ {}** 表达式在字符串中嵌入变量或计算结果,简化了字符串拼接操作。** 表达式在字符串中嵌入变量或计算结果,简化了字符串拼接操作。{} 内可包含表达式或计算,插值的结果会直接替换在字符串中。

示例

let appName: String = "Cangjie"
let version: Float64 = 3.0
let message: String = "${appName} version ${version + 0.5} is now available!"

println(message)  // 输出: Cangjie version 3.500000 is now available!

四、字符串类型支持的操作

字符串类型支持常用的关系运算、拼接和其他字符串处理方法。

4.1 字符串比较与拼接

Cangjie 字符串可以用 == 比较相等性,用 + 进行拼接生成新字符串。

示例

let part1: String = "Learning"
let part2: String = "Cangjie"
let fullPhrase: String = part1 + " " + part2

println("拼接后的结果: ${fullPhrase}")  // 输出: 拼接后的结果: Learning Cangjie
println("是否相等: ${part1 == part2}")  // 输出: 是否相等: false
4.2 常用字符串方法

Cangjie 提供了多种字符串处理方法,例如大小写转换、替换、去除空白等,便于数据清理和格式化。

方法描述示例
toAsciiUpper()转为全大写“cangjie”.toAsciiUpper()
toAsciiLower()转为全小写“CANGJIE”.toAsciiLower()
trimAsciiStart().trimAsciiEnd()去除字符串前后空白" sample text ".trimAsciiStart().trimAsciiEnd()
replace()替换指定字符或子字符串“Hello World”.replace(“World”, “Cangjie”)

示例

let text: String = "  Hello, Cangjie!  "
println("全大写: ${text.toAsciiUpper()}")       // 输出: 全大写:   HELLO, CANGJIE!
println("去空白: ${text.trimAsciiStart().trimAsciiEnd()}") // 输出: 去空白: Hello, Cangjie!
println("替换: ${text.replace("Cangjie", "User")}") // 输出: 替换: Hello, User!

五、字符串的应用场景

字符串在文本数据的格式化、验证、以及用户输入处理方面非常常用。

5.1 数据格式化

可以利用字符串插值生成格式化文本输出,如报告和日志信息。

示例

let userName: String = "Bob"
let sessionTime: Int = 120

println("User ${userName} spent ${sessionTime} minutes online.")  

输出:

User Bob spent 120 minutes online.
5.2 输入处理与验证

在接收用户输入时,可用字符串方法去除多余空格并验证内容是否符合要求。

示例

let userInput: String = "   Cangjie   "
if (userInput.trimAsciiStart().trimAsciiEnd() == "Cangjie") {
    println("输入验证成功!")
} else {
    println("输入不符合要求。")
}

输出:

输入验证成功!

小结

本篇介绍了 Cangjie 中的字符串类型,涵盖字符串的字面量、插值表达、拼接及常用操作方法,帮助开发者熟练掌握字符串在文本处理中的应用。


下篇预告

下一篇将介绍 Cangjie 的 元组类型,讲解元组的定义、操作方法及在数据处理中的应用,敬请关注 「Mac玩转仓颉内测版28」基础篇8 - 元组类型详解


上一篇: 「Mac玩转仓颉内测版26」基础篇6 - 字符类型详解
下一篇: 「Mac玩转仓颉内测版28」基础篇8 - 元组类型详解

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



http://www.kler.cn/a/406035.html

相关文章:

  • Go语言进阶依赖管理
  • SQL注入靶场演练
  • 136.flask内置jinja2模版使用
  • 【CSP CCF记录】201903-1第16次认证 小中大
  • JDK、MAVEN与IDEA的安装与配置
  • 2024年亚太数学建模竞赛问题C宠物产业及相关产业发展分析与对策
  • 【HarmonyOS】鸿蒙应用加载读取csv文件
  • ISUP协议视频平台EasyCVR私有化视频平台新能源汽车充电停车管理方案的创新与实践
  • Kafka 分区分配及再平衡策略深度解析与消费者事务和数据积压的简单介绍
  • nuitka系列: 将py转为pyd文件
  • yolo自动化项目实例解析(九) 导航
  • RDD触发算子:collectAsMap以及foreachParition的语法以及举例使用
  • 第三讲 架构详解:“隐语”可信隐私计算开源框架
  • Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
  • SpringBoot 整合Mybatis时读取部分数据为空或日期为空
  • C#超简单实现人脸识别
  • 虚拟浏览器可以应对哪些浏览器安全威胁?
  • macOS 无法安装第三方app,启用任何来源的方法
  • 利用uniapp开发鸿蒙:运行到鸿蒙模拟器—踩坑合集
  • 高级编程之结构化代码
  • 知识中台在多语言客户中的应用
  • SOL链上的 Meme 生态发展:从文化到创新的融合#dapp开发#
  • Jenkins迁移数据目录
  • C语言中const char *字符进行切割实现
  • 基于matlab的语音信号去噪的App Designer 设计
  • Django数据迁移出错,解决raise NodeNotFoundError问题