轨道
/
Clojure
Clojure
/
练习
/
一尘不染
一尘不染

一尘不染

学习练习

简介

字符操作

Clojure 的字符是java.lang.Character基本类型,我们可以通过互操作,使用 Character 类 提供的方法来操作它们:

(Character/isDigit \2)
;;=> true

字符串工具

Clojure 自带一个强大的字符串处理库 clojure.string。这种写法通常比互操作更地道。

说明

在本练习中,你将实现一组实用函数,帮助开发者清理标识符名称。

在 5 个任务中,你将逐步构建clean函数。有效的标识符由零个或多个字母和下划线组成。

在所有情况下,输入字符串都保证不是 nil。如果向clean函数传入空字符串,则应返回空字符串。

注意,调用方应避免用空标识符调用clean函数,因为这类标识符没有实际作用。

1. 把遇到的空格替换成下划线

实现clean函数,把空格替换成下划线。开头和结尾的空格也不例外。

(clean "my   Id")
;;=> "my___Id"

2. 把控制字符替换成大写字符串 "CTRL"

修改clean函数,把控制字符替换成大写字符串"CTRL"。如果某个字符的编码在 '\u0000' 到 '\u001F' 的范围内,或者在 '\u007F' 到 '\u009F' 的范围内,它就被视为 ISO 控制字符。

(clean "my\u007FId")
;;=> "myCTRLId"

3. 把 kebab-case 转换为 camelCase

修改clean函数,把 kebab-case 转换为 camelCase。

(clean "à-ḃç")
;;=> "àḂç"

4. 省略不是字母的字符

修改clean函数,省略所有不是字母的字符。注意:必须保留上一步中的下划线。

(clean "1😀2😀3😀")
;; => ""

5. 省略小写希腊字母

修改clean函数,省略 'α' 到 'ω' 范围内的所有希腊字母。

(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Clojure Exercism

准备好开始 一尘不染 了吗?

注册 Exercism,借助 12 个概念105 个练习 和真人导师指导,学习并掌握 Clojure,全部免费。