美文网首页autolisp&visuallisp
AutoLisp分割字符串函数

AutoLisp分割字符串函数

作者: 吴吉光 | 来源:发表于2018-07-13 21:36 被阅读0次

在数据处理的时候,查阅了一些常用的autoLisp函数,如下表:

函数 函数功能 说明
(ASCII string) 将字符串中的第一个字符转换成其ASCII码后返回。 参数"string"为一个字符串。函数返回值为整数。
(chr int) 将代表字符ASCII码的整数转换成包含相应的单一字符的字符串。 参数"int"必须是整型且取值在 1-255 范围内。
(strlen [string]...) 以整数形式返回一个字符串中字符的个数。 参数"string"为一个字符串。如果指定多个"string",函数返回所有参数的总长度。如果省略或输入空字符串,函数返回0。
(strcat [string [string]...]) 将多个字符串拼接成一个长字符串后返回。 参数"string"为一个字符串。如果未提供参数,函数返回空字符串。
(substr string start [length]) 返回字符串中的一个子字符串。 参数"string"为一个字符串,"start"为正整数,指定"string"中的开始位置(字符串中的第一个字符的位置为1)。"length"也为正整数,指定在"string"中进行搜索的字符的长度。如果未指定该参数,则子字符串延续到"string"的结尾。
(strcase string [which]) 将字符串中的所有字母转换成大写或小写后返回。 参数"string"为一个字符串,如果提供"which"且其值不为nil,"string"中的所有字符将被转换成小写,否则将字符转换为大写。
(read [string]) 返回字符串中的第一个表或第一个原子。 参数"string"为一个字符串。如果未指定参数,函数返回nil。如果字符串中包含由空格、换行符、制表符或括号等分隔符分开的多个词,则只返回其中的第一个词。
(wcmatch string pattern) 将模式字符串与某指定的字符串进行匹配比较。 参数"string"为要比较的字符串,"pattern"为模式字符串,可以包含表1中所列的通配符。在多个模式条件之间用逗号分隔。如果"string"和"pattern"匹配,函数返回 T,否则返回nil。

表1

字符 说明
# 对比单一的数字
@ 对比任何单一的字母字符
.(句号) 对比任何单 一 的非字母字符
*(星号) 对比任何字符列表, 包含空字符。 而其可使用在搜索格式的任何位置, 如开头、中间或结尾。
? 对比任何单一的字符
~ 如果它为格式中的第一个字符, 则其将对比除该格式以外的任何符号
[...] 对比括号中的任何一个字符
[~...] 对比不在括号内,表示单一字符的范闱
- 用在中括号内, 表示单一字符的范闱
,(逗号) 分隔两种格式
'(反单引号) 跳脱特殊字母(依照顺序读取下个字符)

一般的,一行有多个数据,中间用分隔符隔开。但是我没有找到有关分割字符串的函数,于是决定自己写一个。代码如下。

; 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)
)

相关文章

  • AutoLisp分割字符串函数

    在数据处理的时候,查阅了一些常用的autoLisp函数,如下表: 表1 一般的,一行有多个数据,中间用分隔符隔开。...

  • 分割,合并

    01、分割 strsplit函数:字符串分割函数v <- strsplit(u,"...") #用...将字符分开...

  • PHP字符串处理函数

    字符串长度函数 字符串替换函数 截取字符串函数 分割、连接、反转函数 空白处理函数 字符转义函数 字符串比较函数

  • 【21】c# split函数使用

    split函数的作用是用来分割字符串,通常我们采用的是用什么字符来分割字符串,以达到获取我们想要的字符串,函数的返...

  • AutoLisp语言的特点

    AutoLisp语言的特点 引用自翰林苑的个人博客 AutoLisp语言是一种函数式语言,一切都以函数给出,没有语...

  • go语言常用内置包

    strings包的字符串处理函数 分割字符串 大小写转换 修剪字符串 比较字符串 strconv 包的常用函数 P...

  • split(), reverse(),join()等函数用法

    split()函数,join()函数: split函数是将一个字符串分割成字符串数组。join函数是将数组中的所有...

  • strtok()字符串分割函数

    参考博客:strtok(), strtok_s() 字符串分割函数 函数原型 用途: 当strtok()在参数_S...

  • 几种c++字符串split 函数实现的比较

    文中的字符串split函数功能是从字符串中按照特定的分隔符进行分割,分割的结果保存到std::vector中。 1...

  • PHP -- 字符串相关函数(2)

    获取字符串: mb_substr — 获取部分字符串substr — 返回字符串的子串 分割、链接、反转函数: s...

网友评论

    本文标题:AutoLisp分割字符串函数

    本文链接:https://www.haomeiwen.com/subject/jxgspftx.html