LISP - 字符串(Strings)

LISP - 字符串(Strings) 首页 / LISP入门教程 / LISP - 字符串(Strings)

Common Lisp中的字符串是向量,即一维字符数组。

字符串文字用双引号引起来,字符集支持的任何字符都可以用双引号引起来,以组成一个字符串,除了双引号(")和转义字符(\)之外。但是,可以通过用反斜杠(\)进行转义来包括这些字符。

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(write-line "Hello Learnfk")
(write-line "Welcome to Learnfk Point")

;escaping the double quote character
(write-line "Welcome to\"Learnfk Point\"")

当您执行代码时,它返回以下输出-

Hello Learnfk
Welcome to Learnfk Point
Welcome to "Learnfk Point"

比较函数

数值比较函数和运算符(例如<和>)不适用于字符串。 Common LISP提供了另外两组函数来比较代码中的字符串。 

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

; case-sensitive comparison
(write (string= "this is test" "This is test"))
(terpri)
(write (string> "this is test" "This is test"))
(terpri)
(write (string< "this is test" "This is test"))
(terpri)

;case-insensitive comparision
(write (string-equal "this is test" "This is test"))
(terpri)
(write (string-greaterp "this is test" "This is test"))
(terpri)
(write (string-lessp "this is test" "This is test"))
(terpri)

;checking non-equal
(write (string/= "this is test" "this is Test"))
(terpri)
(write (string-not-equal "this is test" "This is test"))
(terpri)
(write (string/= "lisp" "lisping"))
(terpri)
(write (string/= "decent" "decency"))

当您执行代码时,它返回以下输出-

NIL
0
NIL
T
NIL
NIL
8
NIL
4
5

字符串函数

Sr.No.函数& 描述
1

string-upcase

链接:https://www.learnfk.comhttps://www.learnfk.com/lisp/lisp-strings.html

来源:LearnFk无涯教程网

将字符串转换为大写

2

string-downcase

将字符串转换为小写

3

string-capitalize

大写字符串中的每个单词

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(write-line (string-upcase "a big hello from Learnfk point"))
(write-line (string-capitalize "a big hello from Learnfk point"))

当您执行代码时,它返回以下输出-

A BIG HELLO FROM LEARNFK POINT
A Big Hello From Learnfk Point

Trim函数

Sr.No.Function & 描述
1

string-trim

删除两边空格

2

string-left-trim

删除左边空格

3

string-right-trim

删除右边空格

无涯教程网

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(write-line (string-trim " " "   a big hello from Learnfk point   "))
(write-line (string-left-trim " " "   a big hello from Learnfk point   "))
(write-line (string-right-trim " " "   a big hello from Learnfk point   "))
(write-line (string-trim " a" "   a big hello from Learnfk point   "))

当您执行代码时,它返回以下输出-

a big hello from Learnfk point
a big hello from Learnfk point   
   a big hello from Learnfk point
big hello from Learnfk point

其他函数

LISP中的字符串是数组,因此也是序列,适用于数组和序列的所有函数也适用于字符串。

length       -  函数计算字符串的长度。

subseq      -  函数返回一个子字符串,该子字符串从特定的索引开始,一直到特定的结束索引或字符串的结尾。

char          -  函数允许访问字符串的各个字符。

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(write (length "Hello Learnfk"))
(terpri)
(write-line (subseq "Hello Learnfk" 6))
(write (char "Hello Learnfk" 6))

当您执行代码时,它返回以下输出-

11
Learnfk
#\W

排序和合并

sort      -  函数允许对字符串进行排序。

返回通过合并两个序列而生成的序列。

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

;sorting the strings
(write (sort (vector "Amal" "Akbar" "Anthony") #'string<))
(terpri)

;merging the strings
(write (merge 'vector (vector "Rishi" "Zara" "Priyanka") 
   (vector "Anju" "Anuj" "Avni") #'string<))

当您执行代码时,它返回以下输出-

#("Akbar" "Amal" "Anthony")
#("Anju" "Anuj" "Avni" "Rishi" "Zara" "Priyanka")

反转字符串

reverse       -   函数可反转字符串。

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(write-line (reverse "Are we not drawn onward, we few, drawn onward to new era"))

当您执行代码时,它返回以下输出-

are wen ot drawno nward ,wef ew ,drawno nward ton ew erA

连接字符串

串联函数可以串联两个字符串。

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(write-line (concatenate 'string "Are we not drawn onward, " "we few, drawn onward to new era"))

当您执行代码时,它返回以下输出-

Are we not drawn onward, we few, drawn onward to new era

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学架构 -〔李运华〕

Java核心技术面试精讲 -〔杨晓峰〕

快速上手Kotlin开发 -〔张涛〕

Linux性能优化实战 -〔倪朋飞〕

JavaScript核心原理解析 -〔周爱民〕

图解 Google V8 -〔李兵〕

Selenium自动化测试实战 -〔郭宏志〕

Spark核心原理与实战 -〔王磊〕

零基础入门Spark -〔吴磊〕

好记忆不如烂笔头。留下您的足迹吧 :)