Scheme的字符串操作
字符串操作是任何一门编程语言中最常用的操作之一,scheme也提供了一系列procudure来操作字符串。
1、字符串的比较,有6个,分别是string=? string ? string ? string =? string =?
这与其他语言中对string的比较并无不同,比较字符和长度。
例子:
(string=? "mom" "mom") #t
(string ? "mom" "mommy") #t
(string ? "Dad" "Dad") #f
(string=? "Mom and Dad" "mom and dad") #f
(string ? "a" "b" "c") #t
注意这些比较操作是大小写敏感。相应的,大小写不敏感的版本:
procedure: (string-ci=? string1 string2 string3 ...)
procedure: (string-ci ? string1 string2 string3 ...)
procedure: (string-ci ? string1 string2 string3 ...)
procedure: (string-ci =? string1 string2 string3 ...)
procedure: (string-ci =? string1 string2 string3 ...)
2、从字符构造字符串,使用string过程
(string #\a) = "a"
(string #\a #\b #\c) = "abc"
注意,换行字符是#\newline,回车字符是#\return
3、重复N个字符构造字符串
(make-string) = ""
(make-string 4 #\a) = "aaaa")
4、字符串长度 string-length
(string-length "") = 0
(string-length "dennis") = 6
5、取第N个字符,相当于java中的charAt:
(string-ref "hi there" 0) #\h
(string-ref "hi there" 5) #\e
6、修改字符串的第N个字符:
(string-set! "hello" 0 #\H) = "Hello"
7、拷贝字符串:
(let ((str "abc"))
(eq? str (string-copy str))) = #f
(let ((str "abc"))
(equal? str (string-copy str))) = #t
8、拼接字符串,string-append
(string-append) = ""
(string-append "abc" "defg") = "abcdefg"
9、截取子串
(substring "hi there" 0 1) "h"
(substring "hi there" 3 6) "the"
(substring "hi there" 5 5) ""
10、填充字符串
(let ((str (string-copy "sleepy")))
(string-fill! str #\Z)
str) "ZZZZZZ"
11、与list的相互转换
(string- list "") ()
(string- list "abc") (#\a #\b #\c)
(list- string ()) ""
(list- string (#\a #\b #\c)) "abc"
(list- string
(map char-upcase
(string- list "abc"))) "ABC"
文章转自庄周梦蝶 ,原文发布时间2009-10-12
scheme实现huffman编码的完整代码 来自sicp的完整代码,包括书中给出的代码以及习题,实现了huffman树的生成、解码、编码过程,总共67行代码,同样的代码有空用java、ruby改写下,看看会有什么不同。 (define (make-leaf symbol weight) (list leaf symbol wei
相关文章
- [LeetCode] Isomorphic Strings - 字符串操作:数组计数字符个数问题
- Golang 字符串操作--使用strings、strconv包
- ES-通过Sense插件方便的操作ES
- SQLServer中update没带where的回滚操作(Update或者Delete误操作恢复方法)
- Qt操作XML文件
- Django ORM那些相关操作
- 在eclipse中使用github进行代码的上传操作以及如何建立分支
- 开放应用模型操作指南(一)| 云服务一键接入 OAM 体系
- matlab 对图像操作的函数概览
- 2015.7.15js-12(DOM的操作应用)
- 用C#实现字符串的加密解密操作
- Leetcode.1625 执行操作后字典序最小的字符串
- Win32 DLL相关操作
- paip.文件目录操作uAPI php python java对照
- 字符串基础类型拓宽的操作,转换成整数值
- JavaScript操作字符串的常用方法总结:增、删、改、查(前端常见面试题必考必问
- js——if判断(只为空字符串时进行操作,使用全等)
- Java学习路线-27:IO操作深入与IO操作类继承体系
- php字符串操作集锦
- Lesson12——NumPy 字符串函数之 Part1:字符串操作函数
- C++字符串操作笔试题第二波
- MySQL 字符串与时间操作函数
- C# 字符与字符串操作
- Linux基础笔记3 | 系统基础知识与操作