明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 576|回复: 2

[提问] 如何将输入41+42+50*3+52+52转换为41+42+50+50+50+52+52?

[复制链接]
发表于 2024-2-11 11:22 | 显示全部楼层 |阅读模式
或者将41+42+50*3+52+52这类字符串转换为("41" "42" "50" "50" "50" "52" "52")
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-2-11 15:17 | 显示全部楼层
  1. ;; (abc "41+42+50*3+52+52") →("41" "42" "50" "50" "50" "52" "52")
  2. (defun abc (str / lst a b n tmp)
  3.   (defun StrSpr (str sub / lst n)
  4.     (while (setq n (vl-string-search sub str))
  5.       (setq lst (cons (substr str 1 n) lst)
  6.             str (substr str (+ n (strlen sub) 1))
  7.       )
  8.     )
  9.     (vl-remove "" (reverse (cons str lst)))
  10.   )
  11.   (setq lst (mapcar '(lambda (x)
  12.                        (if (vl-string-search "*" x)
  13.                          (setq a (StrSpr x "*")
  14.                                n (cadr a)
  15.                                a (car a)
  16.                                b (repeat (atoi n)(setq tmp (cons a tmp)))
  17.                          )
  18.                          (list x)
  19.                        )
  20.                      )
  21.                     (StrSpr str "+")
  22.             )
  23.         lst (apply 'append lst)
  24.   )
  25. )
 楼主| 发表于 2024-2-11 19:53 | 显示全部楼层
感谢xyp1964。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-2 04:38 , Processed in 0.155333 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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