一乾二淨

一乾二淨

學習練習

簡介

字元操作

Clojure 的字元是 java.lang.Character基本型別,我們可以透過互操作,使用 Character 類別中的方法來操作它們:

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

字串工具

Clojure 內建一套強大的字串處理函式庫:clojure.string。這通常比互操作更符合慣用寫法。

說明

在這個練習中,你將實作一組實用的常式,協助開發者清理識別字名稱。

在 5 個任務中,你將逐步建構clean這個函式。有效的識別字由零個或多個字母與底線組成。

在所有情況下,輸入字串保證不為 nil。如果傳入這個函式的是空字串,就應該回傳空字串。

請注意,呼叫端應避免以空識別字呼叫這個函式,因為這類識別字不具任何作用。

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,全部免費。