乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 138|回复: 9

如何将字符串分解成如下格式

[复制链接]
wcf

3

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
20
发表于 2004-2-24 07:42:00 | 显示全部楼层 |阅读模式
将32-6-0,分解为32,-,6,-0,而不是单个字符
将325;46;21(为一字符串),分解为3个字符串325;         46;         21
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-2-24 08:40:00 | 显示全部楼层
还是看不出规律是什么,比如:-6和-0为什么一个要分开而一个又不分开?
回复

使用道具 举报

wcf

3

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
20
发表于 2004-2-24 10:56:00 | 显示全部楼层
抱歉,刚才打错了,应是-,0。
也就是数字和符号分开,而数字又不能分成单个的。
烦版主能解决这个问题
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-2-24 12:10:00 | 显示全部楼层
(defun test(str / i str_lst item_num)
         (setq i 1)
         (setq str_lst nil)
         (setq item_num "")
         (setq item_chr "")
         (repeat (strlen str)
                         (setq ch (substr str i 1))
                         (if (or (wcmatch ch "[0-9]") (= ch "."))
                                         (progn
        (setq item_num (strcat item_num ch))
        (if (/= item_chr "")
                 (setq str_lst (append str_lst (list item_chr)))
        )
        (setq item_chr "")
                                         )
                                         (progn
        (setq item_chr (strcat item_chr ch))
        (if (/= item_num "")
                 (setq str_lst (append str_lst (list item_num)))
        )
        (setq item_num "")
                                         )
                         )
                         (setq i (1+ i))
         )
         (if (and (or (wcmatch ch "[0-9]") (= ch ".")) (/= item_num ""))
                         (setq str_lst (append str_lst (list item_num)))
                         (setq str_lst (append str_lst (list item_chr)))
         )
         str_lst
)
回复

使用道具 举报

17

主题

32

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2004-2-24 12:46:00 | 显示全部楼层
我的第一种
  1. (defun str-trim (a / b c)
  2.   (setq a (vl-string-translate "-" " " a))
  3.   (while(setq c (vl-string-search " " a))
  4.              (setq b   (cons(substr a 1 c)b)
  5.            b   (cons "-" b)
  6.                          a (vl-string-trim " "(substr a (1+ c))))
  7.    )
  8.   (setq b (cons a b))(reverse b)
  9. )
;;;(setq c "0-2-3-4-5-6-7-8-9-33-35.20-90.5-哈哈")(str-trim c)---->  返回"0" "-" "2" "-" "3" "-" "4" "-" "5" "-" "6" "-" "7" "-" "8" "-" "9" "-" "33" "-" "35.20" "-" "90.5" "-" "哈哈")
  
  
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2004-2-24 14:23:00 | 显示全部楼层
  1. ;|字符串替换-------------------------------无痕.2004.2
  2. (xsubstr " " "-" "32-33-0.01-哈哈") -> "32 33 0.01 哈哈"
  3. (xsubstr " - " "-"   "32-33-0.01-哈哈") -> "32 - 33 - 0.01 - 哈哈"
  4. (read (strcat "(" (xsubstr " " "-" "32-33-0.01-哈哈") ")")) -> (32 33 0.01 哈哈)
  5. (read (strcat "("" (xsubstr "" "" "-" "32-33-0.01-哈哈") "")")) -> ("32" "33" "0.01" "哈哈")
  6. (read (strcat "("" (xsubstr """-""" "-" "32-33-0.01-哈哈") "")")) -> ("32" "-" "33" "-" "0.01" "-" "哈哈")
  7. |;
  8. (defun xsubstr (n$ o$ str / n)
  9.    (setq n 0)
  10.    (while (setq n (vl-string-search o$ str n))
  11.      (setq str (vl-string-subst n$ o$ str n))
  12.      (setq n (+ n (strlen n$)))
  13.    )str
  14. )
回复

使用道具 举报

17

主题

32

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2004-2-24 14:42:00 | 显示全部楼层
回:无痕
哈哈,天王盖地虎
回复

使用道具 举报

wcf

3

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
20
发表于 2004-2-24 19:42:00 | 显示全部楼层
版主的程序运行没有通过,我用的是R14,不知何因
Command: test
error: incorrect number of arguments to a function
(C:TEST)
*Cancel*
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-2-24 19:43:00 | 显示全部楼层
(test 32-6-0)是要参数的。。。。。。。。。。。。。。。。
回复

使用道具 举报

wcf

3

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
20
发表于 2004-2-24 19:51:00 | 显示全部楼层
能批量转换吗?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-8 23:43 , Processed in 1.746935 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表