万少 · 万绍业 技术 · 创造 · 价值

仓颉入门到实战 12-字符串类型

12-字符串类型

字符串类型使用 String 表示,用于表达完整文本数据,它的本质其实由一串 Unicode 字符组合而成。

字符串类型使用 String 表示,用于表达完整文本数据,它的本质其实由一串 Unicode 字符组合而成。

仓颉中的字符串字面量分为三类:单行字符串字面量,多行字符串字面量,多行原始字符串字面量。

字符串字面量

单行字符串字面量

单行字符串字面量的意思是可以定义的字符串是单行的。可以使用单引号和双引号,内容中也支持转移字符

package pro

main() {
    //   单行 
    let str1 = "1 单行" // 双引号
    let str2 = '2 单行' // 单引号

    // 单引号中可以放双引号 
    let str3 = '3 单行和"双行"'
    // 反之也可以
    let str4 = "4 单行和'双行'"

    // 使用转义字符
    let str5 = "5 单行 \"也能使用双引号了 \n"
    print(str5)
    let str6 = "6 单行 也能换行了 \n 换行 "
    print(str6)
}

image-20241219110118201

多行字符串字面量

多行字符串字面量可以支持多行显示,这个是它和 单行字符串字面量最大的区别。

符合有两种

  1. 三个 单引号

    '''
    内容
    '''
    
  2. 三个 双引号

    """
    内容
    """
    

示例代码

    let str7 = """
    A 
    B 
    C
"""
    print(str7)

image-20241219110510351

多行原始字符串字面量

多行原始字符串字面量的特点是里面存放的内容都会原样输出,包括转义字符。

它定义的方法是1个或者多个#开头,后面跟一个单引号或者一个双引号。比如

#'abc'#
#"
a
b
c
"#

######'a\nb'######

示例

    // 多行原始
    let str8 = #'
    A

    B

    C\nD
    '#
    print(str8)

image-20241219111051681

插值字符串

插值字符串可以让我们在单行字符串和多行字符串中来冲入我们想要的内容,帮忙我们处理字符串。

'a ${变量} bc'

'a ${'你好'} bc'

示例

        // 多行
        let str7 = """
        A 
        ${'EE'}
        B 
        C
    """
        print(str7)

image-20241219113019961

字符串类型支持的操作

字符串类型支持使用关系操作符进行比较,支持使用 + 进行拼接。下面的例子展示了字符串类型的判等和拼接:

main() {
    let s1 = "abc"
    var s2 = "ABC"
    let r1 = s1 == s2
    println("The result of 'abc' == 'ABC' is: ${r1}")
    let r2 = s1 + s2
    println("The result of 'abc' + 'ABC' is: ${r2}")
}

编译并执行上述代码,输出结果为:

The result of 'abc' == 'ABC' is: false
The result of 'abc' + 'ABC' is: abcABC

字符串还支持其他常见操作,例如拆分、替换等。

常见的转义字符

转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\ 代表一个反斜线字符"" 092
' 代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
? 代表一个问号 063
\0 空字符(NUL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\xhh 十六进制所代表的任意字符 十六进制

留言讨论

正在加载评论…