首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > 将List中的元素连接成字符串的几种方法
【标  题】:将List中的元素连接成字符串的几种方法
【关键字】:List
【来  源】:http://www.cublog.cn/u/4614/showart.php?id=97009

将List中的元素连接成字符串的几种方法

较优良的方法:
 (reduce #'(lambda (s1 s2) (concatenate 'string s1 "-" s2))
         '("albert" "lee" "lisp"))
"albert-lee-lisp"

使用方法:

CL-USER 6 : 1 > (join '("albert" "lee" "silly" "programmer") "-")
"albert-lee-silly-programmer"

方法1: (这个方法比较“传统”,使用循环,不是太好)
(defun join (wlist sepchr)
  (let ((string nil))
    (dolist (sym wlist string)
      (setf string
        (concatenate 'string
          string (if string sepchr nil) (string sym))))))

方法2:(这个通过 reduce ,lambda 比较巧妙)
(defun join (wlist sepchr)
  (reduce #'(lambda(s1 s2) (concatenate 'string s1 sepchr s2))
          wlist )) 


Delphi 中使长循环有响应:【上一篇】
(转载)关于23种设计模式的有趣见解:【下一篇】
【相关文章】
  • ArrayList使用toArray()构造数组时的问题
  • 在一台机器配置两个listener(Oracle)
  • Asp.net:DropDownList的輸入與選取3/16
  • [C#] ListView不够好
  • Neo, There is no List.
  • python(8): list
  • python(22): apply、map及函数工具、list的再构造(14.2-14.5)
  • listener和instance的启动顺序
  • listener.ora--sqlnet.ora--tnsnames.ora的关系以及手工配置举例
  • Init.ora event list
  • 【随机文章】
  • 把普通函数指针,变成对象方法指针
  • 类似紫光的emacs输入法
  • linux 多线程socket
  • 你可以在上面画东西或做其它的事(如果没有关键?的话是什么也不能做的
  • 如何使用一块新加的SCSI硬盘?
  • XML入门的常见问题(四)
  • 关于存储器的读和写
  • 记一次对php聊天室的攻击
  • jQuery API/1.1.1/Core
  • init进程和inittab文件简要说明
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.