AutoLisp分割字符串函數(shù)

在數(shù)據(jù)處理的時候冀惭,查閱了一些常用的autoLisp函數(shù),如下表:

函數(shù) 函數(shù)功能 說明
(ASCII string) 將字符串中的第一個字符轉(zhuǎn)換成其ASCII碼后返回掀鹅。 參數(shù)"string"為一個字符串云头。函數(shù)返回值為整數(shù)。
(chr int) 將代表字符ASCII碼的整數(shù)轉(zhuǎn)換成包含相應(yīng)的單一字符的字符串淫半。 參數(shù)"int"必須是整型且取值在 1-255 范圍內(nèi)缓升。
(strlen [string]...) 以整數(shù)形式返回一個字符串中字符的個數(shù)蔓钟。 參數(shù)"string"為一個字符串。如果指定多個"string"浑此,函數(shù)返回所有參數(shù)的總長度猴鲫。如果省略或輸入空字符串对人,函數(shù)返回0。
(strcat [string [string]...]) 將多個字符串拼接成一個長字符串后返回拂共。 參數(shù)"string"為一個字符串牺弄。如果未提供參數(shù),函數(shù)返回空字符串宜狐。
(substr string start [length]) 返回字符串中的一個子字符串势告。 參數(shù)"string"為一個字符串蛇捌,"start"為正整數(shù),指定"string"中的開始位置(字符串中的第一個字符的位置為1)咱台。"length"也為正整數(shù)络拌,指定在"string"中進行搜索的字符的長度。如果未指定該參數(shù)回溺,則子字符串延續(xù)到"string"的結(jié)尾春贸。
(strcase string [which]) 將字符串中的所有字母轉(zhuǎn)換成大寫或小寫后返回。 參數(shù)"string"為一個字符串遗遵,如果提供"which"且其值不為nil萍恕,"string"中的所有字符將被轉(zhuǎn)換成小寫,否則將字符轉(zhuǎn)換為大寫车要。
(read [string]) 返回字符串中的第一個表或第一個原子允粤。 參數(shù)"string"為一個字符串。如果未指定參數(shù)屯蹦,函數(shù)返回nil维哈。如果字符串中包含由空格、換行符登澜、制表符或括號等分隔符分開的多個詞阔挠,則只返回其中的第一個詞。
(wcmatch string pattern) 將模式字符串與某指定的字符串進行匹配比較脑蠕。 參數(shù)"string"為要比較的字符串购撼,"pattern"為模式字符串,可以包含表1中所列的通配符谴仙。在多個模式條件之間用逗號分隔迂求。如果"string"和"pattern"匹配,函數(shù)返回 T晃跺,否則返回nil揩局。

表1

字符 說明
# 對比單一的數(shù)字
@ 對比任何單一的字母字符
.(句號) 對比任何單 一 的非字母字符
*(星號) 對比任何字符列表, 包含空字符掀虎。 而其可使用在搜索格式的任何位置凌盯, 如開頭、中間或結(jié)尾烹玉。
? 對比任何單一的字符
~ 如果它為格式中的第一個字符驰怎, 則其將對比除該格式以外的任何符號
[...] 對比括號中的任何一個字符
[~...] 對比不在括號內(nèi),表示單一字符的范闈
- 用在中括號內(nèi)二打, 表示單一字符的范闈
,(逗號) 分隔兩種格式
'(反單引號) 跳脫特殊字母(依照順序讀取下個字符)

一般的县忌,一行有多個數(shù)據(jù),中間用分隔符隔開。但是我沒有找到有關(guān)分割字符串的函數(shù)症杏,于是決定自己寫一個装获。代碼如下。

; user defined function strsplit.
; strsplit splits a string with delimiter, and return a list.
; example: (strsplit "1,22,333,4444" ",")    -->> ("1","22","333","4444")
;          (strsplit ",1,22,333,4444," ",")  -->> ("" "1" "22" "333" "4444" "")
(defun strsplit(datastr delimiter)
    (setq strlist '()
          str ""
    )
    (setq n (strlen datastr))
    (setq i 1)
    (repeat n
        ; s is a single letter, starts from the first to the end. 
        (setq s (substr datastr i 1))
        ;
        (if (/= s delimiter)
            ; when s is't a delimiter
            (progn
                (setq str (strcat str s))
                ; if s is the last letter
                (if (= i n)
                    (setq strlist (cons str strlist))
                )
            )
            ; when s is a delimiter
            (progn
                (setq strlist (cons str strlist))
                (setq str "")
                ; if delimiter is the last letter
                (if (= i n)
                    (setq strlist (cons "" strlist))
                )
            )
        )
        (setq i (1+ i))
    )
    ; reverse list and retrun it
    (reverse strlist)
)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸳慈,一起剝皮案震驚了整個濱河市饱溢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌走芋,老刑警劉巖绩郎,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異翁逞,居然都是意外死亡肋杖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門挖函,熙熙樓的掌柜王于貴愁眉苦臉地迎上來状植,“玉大人,你說我怎么就攤上這事怨喘〗蚧” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵必怜,是天一觀的道長肉拓。 經(jīng)常有香客問我,道長梳庆,這世上最難降的妖魔是什么暖途? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮膏执,結(jié)果婚禮上驻售,老公的妹妹穿的比我還像新娘。我一直安慰自己更米,他們只是感情好欺栗,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著征峦,像睡著了一般纸巷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上眶痰,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天,我揣著相機與錄音梯啤,去河邊找鬼竖伯。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的七婴。 我是一名探鬼主播祟偷,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼打厘!你這毒婦竟也來了修肠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤户盯,失蹤者是張志新(化名)和其女友劉穎嵌施,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莽鸭,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡吗伤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了硫眨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片足淆。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖礁阁,靈堂內(nèi)的尸體忽然破棺而出巧号,到底是詐尸還是另有隱情,我是刑警寧澤姥闭,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布丹鸿,位于F島的核電站,受9級特大地震影響泣栈,放射性物質(zhì)發(fā)生泄漏卜高。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一南片、第九天 我趴在偏房一處隱蔽的房頂上張望掺涛。 院中可真熱鬧,春花似錦疼进、人聲如沸薪缆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拣帽。三九已至,卻和暖如春嚼锄,著一層夾襖步出監(jiān)牢的瞬間减拭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工区丑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拧粪,地道東北人修陡。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像可霎,于是被迫代替她去往敵國和親魄鸦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354