LISP字符串(Strings)

/ / 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\"")

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

无涯教程网

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

来源:LearnFk无涯教程网

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"))

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

无涯教程网

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

来源:LearnFk无涯教程网

NIL
0
NIL
T
NIL
NIL
8
NIL
4
5

字符串函数

Sr.No.函数& 描述
1

string-upcase

将字符串转换为大写

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"))

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

无涯教程网

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

来源:LearnFk无涯教程网

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   "))

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

无涯教程网

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

来源:LearnFk无涯教程网

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))

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

无涯教程网

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

来源:LearnFk无涯教程网

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<))

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

无涯教程网

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

来源:LearnFk无涯教程网

#("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"))

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

无涯教程网

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

来源:LearnFk无涯教程网

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"))

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

无涯教程网

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

来源:LearnFk无涯教程网

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

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

AI大模型企业应用实战 -〔蔡超〕

LangChain 实战课 -〔黄佳〕

AI大模型之美 -〔徐文浩〕

手把手带你写一个Web框架 -〔叶剑峰〕

Django快速开发实战 -〔吕召刚〕

Vim 实用技巧必知必会 -〔吴咏炜〕

罗剑锋的C++实战笔记 -〔罗剑锋〕

分布式协议与算法实战 -〔韩健〕

人工智能基础课 -〔王天一〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者