找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2355|回复: 5

[研讨] 大家一起写一个以汉字或英文单词为单位字符串函数吧

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-31 14:51:31 | 显示全部楼层 |阅读模式

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

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

×


写一个汉字或英文的单词为单位的SUBSTR
比如:str= 晓东CAD对你有帮助吗?

(#substr str 1 1)--->晓
(#substr str 3 1)--->CAD   ---对英文连续的单词算一个
(#substr str 2 3)--->东CAD对

评分

参与人数 1D豆 +5 收起 理由
炫翔 + 5 出题引导交流奖!

查看全部评分

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

  1. (defun #Substr (STR START LEN / STRLST STRLST1 E_STR HZ_STR RES)  (setq        strlst        (vl-string->list str)
  2.         strlst1        '()
  3.   )
  4.   (while strlst
  5.     (cond
  6.       ((and (not hz_str)
  7.             (> (car strlst) 159)
  8.        )
  9.        (setq e_str nil)
  10.        (setq hz_str (list (car strlst)))
  11.        (setq strlst (cdr strlst))
  12.       )
  13.       ((and hz_str
  14.             (> (car strlst) 159)
  15.        )
  16.        (setq e_str nil)
  17.        (setq hz_str (append hz_str (list (car strlst))))
  18.        (setq strlst (cdr strlst))
  19.        (setq strlst1 (append strlst1 (list hz_str))
  20.              hz_str  nil
  21.        )
  22.       )
  23.       ((< (car strlst) 159)
  24.        (setq hz_str nil)
  25.        (if e_str
  26.          (setq e_str (append e_str (list (car strlst))))
  27.          (setq e_str (list (car strlst)))
  28.        )
  29.        (setq strlst (cdr strlst))
  30.        (if (or (> (car strlst) 159)
  31.                (= strlst nil)
  32.            )
  33.          (if strlst1
  34.            (setq strlst1 (append strlst1 (list e_str)))
  35.            (setq strlst1 (list e_str))
  36.          )
  37.        )
  38.       )
  39.     )
  40.   )
  41.   (setq str (mapcar 'vl-list->string strlst1))
  42.   (repeat (1- start) (setq str (cdr str)))
  43.   (setq res "")
  44.   (if len
  45.     (while (and str (not (zerop len)))
  46.       (setq res        (strcat res (car str))
  47.             str        (cdr str)
  48.             len        (1- len)
  49.       )
  50.     )
  51.     (setq res (apply 'strcat str))
  52.   )
  53.   res
  54. )

评分

参与人数 3D豆 +15 贡献 +1 收起 理由
Lispboy + 5 热心帮忙奖!
牢固 + 5 + 1 很给力!经验;技术要点;资料分享奖!
炫翔 + 5 及时回复奖!

查看全部评分

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

使用道具 举报

发表于 2013-5-31 18:08:18 | 显示全部楼层
我来支持你了!  这个我不会, 谢谢

点评

你不会我也给你加分,哈哈。葛老在,帖子会火。  发表于 2013-5-31 20:18

评分

参与人数 1D豆 +5 收起 理由
Lispboy + 5 及时回复奖!

查看全部评分

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

使用道具 举报

发表于 2013-5-31 18:57:17 来自手机 | 显示全部楼层
能识别单词这不太可能,论坛以前倒是有个中西拆分,连续中文做一个词,连续西文是一个,但达不到认单词程度来自: Android客户端

点评

我还没敢想那么智能,那要涉及到中文分词,能汉字作为一个字符,连续的英文作为一个字符就够了,暂时。  详情 回复 发表于 2013-5-31 20:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2013-5-31 20:19:35 | 显示全部楼层
Free-Lancer 发表于 2013-5-31 18:57
能识别单词这不太可能,论坛以前倒是有个中西拆分,连续中文做一个词,连续西文是一个,但达不到认单词程度

我还没敢想那么智能,那要涉及到中文分词,能汉字作为一个字符,连续的英文作为一个字符就够了,暂时。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 13:51 , Processed in 0.418457 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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