明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4535|回复: 23

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

  [复制链接]
发表于 2004-2-24 07:42:00 | 显示全部楼层 |阅读模式
将32-6-0,分解为32,-,6,-0,而不是单个字符
将325;46;21(为一字符串),分解为3个字符串325; 46; 21
发表于 2004-2-24 08:40:00 | 显示全部楼层
还是看不出规律是什么,比如:-6和-0为什么一个要分开而一个又不分开?
 楼主| 发表于 2004-2-24 10:56:00 | 显示全部楼层
抱歉,刚才打错了,应是-,0。


也就是数字和符号分开,而数字又不能分成单个的。


烦版主能解决这个问题
发表于 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
)
发表于 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" "-" "哈哈")
  
  
发表于 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. )
发表于 2004-2-24 14:42:00 | 显示全部楼层
回:无痕


哈哈,天王盖地虎
 楼主| 发表于 2004-2-24 19:42:00 | 显示全部楼层
版主的程序运行没有通过,我用的是R14,不知何因 Command: test
error: incorrect number of arguments to a function
(C:TEST)
*Cancel*
发表于 2004-2-24 19:43:00 | 显示全部楼层
(test 32-6-0)是要参数的。。。。。。。。。。。。。。。。
 楼主| 发表于 2004-2-24 19:51:00 | 显示全部楼层
能批量转换吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 15:50 , Processed in 0.200166 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表