Clojure 的字符是java.lang.Character基本类型,我们可以通过互操作,使用 Character 类 提供的方法来操作它们:
(Character/isDigit \2)
;;=> true
Clojure 自带一个强大的字符串处理库 clojure.string。这种写法通常比互操作更地道。
在本练习中,你将实现一组实用函数,帮助开发者清理标识符名称。
在 5 个任务中,你将逐步构建clean函数。有效的标识符由零个或多个字母和下划线组成。
在所有情况下,输入字符串都保证不是 nil。如果向clean函数传入空字符串,则应返回空字符串。
注意,调用方应避免用空标识符调用clean函数,因为这类标识符没有实际作用。
实现clean函数,把空格替换成下划线。开头和结尾的空格也不例外。
(clean "my Id")
;;=> "my___Id"
修改clean函数,把控制字符替换成大写字符串"CTRL"。如果某个字符的编码在 '\u0000' 到 '\u001F' 的范围内,或者在 '\u007F' 到 '\u009F' 的范围内,它就被视为 ISO 控制字符。
(clean "my\u007FId")
;;=> "myCTRLId"
修改clean函数,把 kebab-case 转换为 camelCase。
(clean "à-ḃç")
;;=> "àḂç"
修改clean函数,省略所有不是字母的字符。注意:必须保留上一步中的下划线。
(clean "1😀2😀3😀")
;; => ""
修改clean函数,省略 'α' 到 'ω' 范围内的所有希腊字母。
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"