找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1304|回复: 3

[求助] [求助]:如何给字符串加"00"?

[复制链接]
发表于 2003-5-20 00:33:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何一次性给所有字符串均加"0"?
例如:将24*45改为240*450,30*40 改为300*400等
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-5-20 01:04:25 | 显示全部楼层

Re: [求助]:如何给字符串加"00"?

最初由 JQKA 发布
[B]如何一次性给所有字符串均加"0"?
例如:将24*45改为240*450,30*40 改为300*400等 [/B]

用这个函数

  1. (defun strParse        (Str Delimiter / SearchStr StringLen return n char)
  2.   (setq SearchStr Str)
  3.   (setq StringLen (strlen SearchStr))
  4.   (setq return '())
  5.   (while (> StringLen 0)
  6.     (setq n 1)
  7.     (setq char (substr SearchStr 1 1))
  8.     (while (and (/= char Delimiter) (/= char ""))
  9.       (setq n (1+ n))
  10.       (setq char (substr SearchStr n 1))
  11.     ) ;_ end of while
  12.     (setq return (cons (substr SearchStr 1 (1- n)) return))
  13.     (setq SearchStr (substr SearchStr (1+ n) StringLen))
  14.     (setq StringLen (strlen SearchStr))
  15.   ) ;_ end of while
  16.   (reverse return)
  17. ) ;_ end of defun

功能  
将具有分隔符的字符串解析为列表  
语法  
(StrParse Str Delimiter)  
参数  
Str:要解析的字符串
Delimiter :要搜索的分隔符  
返回值  
一个字符串列表  
样例  
(setq a "Harp,Guiness,Black and Tan")
(StrParse a ",")
返回:
("Harp" "Guiness" "Black and Tan")  


  1. $ (mapcar '(lambda (x) (strcat x "0")) (strParse "20*30" "*"))
  2. ("200" "300")
复制代码

再合并就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-5-20 22:48:28 | 显示全部楼层
谢谢eachy
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-5-21 00:22:01 | 显示全部楼层

Re: [求助]:如何给字符串加"00"?

最初由 JQKA 发布
[B]如何一次性给所有字符串均加"0"?
例如:将24*45改为240*450,30*40 改为300*400等 [/B]


再写一个用XDRX_API写的

  1. <normalfont>
  2. (defun StrParse (str Parse str1 / str2 str3)
  3.   (setq str2 (xdrx_string_tok str Parse))
  4.   (if (> (length str2) 1)
  5.     (progn
  6.       (setq str3 (xdrx_string_join (mapcar
  7.                                      '(lambda (x)
  8.                                         (strcat x str1)
  9.                                       )
  10.                                      str2
  11.                                    ) parse
  12.                  )
  13.       )
  14.     )
  15.   )
  16.   str3
  17. )
  18. </normalfont>


例子:
  1. <normalfont>
  2. 命令: (setq a "24*35")
  3. "24*35"

  4. 命令: (StrParse a "*" "0")
  5. "240*350"

  6. 命令: (StrParse a "*" "a")
  7. "24a*35a"
  8. </normalfont>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 14:27 , Processed in 0.169556 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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