一、创建 
函数str: 函数 (str) 接受任意数量的参数。如果参数不是字符串则将其转换为字符串,返回创建的新字符串。如果没有参数或为nil,则返回空字符串""
[python] view plaincopy print?
  1. user=>
  2. user=> (str 1)
  3. "1"
  4. user=> (str -2.5)
  5. "-2.5"
  6. user=> (str "a")
  7. "a"
  8. user=> (str "abc" 123)
  9. "abc123"
  10. user=> (str)
  11. ""
  12. user=> (str '(1 2 3))
  13. "(1 2 3)"
  14. user=> (str nil)
  15. ""
  16. user=> (str null)
  17. java.lang.Exception: Unable to resolve symbol: null in this context (NO_SOURCE_FILE:149)
  18. user=> (str "null")
  19. "null"
  20. user=> (str "abc " 123)
  21. "abc 123"
  22. user=> (str 123 345)
  23. "123345"

其它比较少用的创建函数 
print-str、println-str、pr-str、prn-str、with-out-str

[python] view plaincopy print?
  1. user=> (print-str "abc" 234)
  2. "abc 234"
  3. user=> (println-str "abc" 234)
  4. "abc 234\n"
  5. user=> (pr-str "abc" 234)
  6. "\"abc\" 234"
  7. user=> (prn-str "abc" 234)
  8. "\"abc\" 234\n"
  9. user=> (with-out-str "abc" 234)
  10. ""

二、string操作 
count函数: count函数接受字符串参数时,返回字符串的字符数。

[python] view plaincopy print?
  1. user=> (count)
  2. java.lang.IllegalArgumentException: Wrong number of args (0) passed to: core$count (NO_SOURCE_FILE:175)
  3. user=> (count nil)
  4. 0
  5. user=> (count "abc123")
  6. 6

subs函数: subs函数接受两个或三个参数, 第一个是字符串,第二个是一个整数偏移量,第三个(可选)是另一个整数偏移量。函数返回从第一个偏移量(含),到第二个(不含)偏移量或者结尾(如果没有第二个偏移量)截取的子字符串。

[python] view plaincopy print?
  1. user=> (subs "ithomer" 1)
  2. "thomer"
  3. user=> (subs "ithomer" 1 3)
  4. "th"
  5. user=> (subs "ithomer" 1 (count "ithomer"))
  6. "thomer"
  7. user=> (subs "ithomer" 1 20)
  8. java.lang.StringIndexOutOfBoundsException: String index out of range: 20 (NO_SOURCE_FILE:0)
  9. user=> (subs "ithomer")
  10. java.lang.IllegalArgumentException: Wrong number of args (1) passed to: core$subs (NO_SOURCE_FILE:0)

format函数: format函数用于格式化字符串。使用jdk的java.util.Formatter类完成格式化。

[python] view plaincopy print?
  1. user=> (format "hello %s" "ithomer.net")
  2. "hello ithomer.net"
  3. user=> (format "%5d" 3)
  4. "    3"
  5. user=> (format "%-5d" 3)
  6. "3    "
  7. user=> (format "%05d" 3)
  8. "00003"

检查函数:字符串检查函数 (string?) 接受一个参数,如果是字符串返回true,否则返回false

[python] view plaincopy print?
  1. user=> (string? "abc")
  2. true
  3. user=> (string? "123")
  4. true
  5. user=> (string? 123)
  6. false
  7. user=> (string? nil)
  8. false

字符检查函数(char?)接受一个参数,如果是字符类型返回true,否则返回false

[python] view plaincopy print?
  1. user=> (char? "abc")
  2. false
  3. user=> (char? \a)
  4. true
  5. user=> (char? 'a')
  6. java.lang.Exception: Unmatched delimiter: )
  7. user=> (char? a)
  8. java.lang.Exception: Unable to resolve symbol: a in this context (NO_SOURCE_FILE:222)
  9. user=> (char? 1)
  10. false
  11. user=> (char? \1)
  12. true
  13. user=> (char? nil)
  14. false

Clojure 学习入门(4)- 字符串相关推荐

  1. Clojure 学习入门(6)- 函数定义

    一.创建函数:  fn: fn是一个宏,用于定义一个简单的函数,如下:  [python] view plaincopy print? user=> (fn [] "hello&quo ...

  2. Clojure 学习入门(6)—— 函数定义

    一.创建函数: fn: fn是一个宏,用于定义一个简单的函数,如下:  user=> (fn [] "hello") #<user$eval375$fn__376 us ...

  3. Clojure 学习入门(1) - 学习资料

    转自:http://blog.csdn.net/ithomer/article/details/17225813 Clojure(发音类似"closure",['kləʊʒə(r) ...

  4. Clojure 学习入门(16)- 正则表达式

    一.创建正则表达式  re-pattern函数:  函数 (re-pattern) 接受一个字符串参数,返回一个正则表达式样式(java.util.regex.Pattern类的实例).这个样式能用于 ...

  5. Clojure 学习入门(13)- binding

    Clojure里面是不支持变量的.Binding跟变量有点像,但是在被赋值之前是不允许改的,包括:全局binding, 线程本地(thread local)binding, 以及函数内的本地bindi ...

  6. Clojure 学习入门(11)- 宏 macro

    clojure macro宏在运行之前机械展开,定义宏相当于给语言增加新特性,写宏的*原则*:  能写成函数就不要用宏(因为写宏没有写函数简单直观,容易写错,需要先在 REPL 中测试一番) 只有不得 ...

  7. Clojure 学习入门(5)- 关键字

    一.创建:  Keyword: 关键字是一个内部字符串; 两个同样的关键字指向同一个对象; 通常被用来作为map的key. [python] view plaincopy print? user=&g ...

  8. Clojure 学习入门(18)—— 数据类型

    如何表示和处理数据 Clojure是一种动态类型语言,这意味着你在程序中永远不需要明确定义符号.函数.或者参数的数据类型.但是,所有的值仍然有一个类型.字符串时是字符串,数字是数字,列表是列表,等等. ...

  9. C语言学习入门之字符串和转义字符

    活动地址:CSDN21天学习挑战赛 前言 本篇整理的是C语言基础中的字符串和转义字符的知识 一.字符串是什么? 由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Li ...

最新文章

  1. Mysqldump参数大全(参数来源于mysql5.5.19源码)
  2. msyql request quit
  3. 比较难理解的知识汇集
  4. oracle sql 导入mysql数据库备份_Oracle 备份、导入数据库命令
  5. web访问hive速度怎么样_使用Hive的web界面:HWI
  6. (转载)为什么Linux不需要碎片整理?
  7. 不懂这25个名词,好意思说你懂大数据?
  8. 【转】如何修改IIS的默认端口号
  9. vue 进入首页只弹一个弹框_vue.js实现只弹一次弹框
  10. laravel5.4中验证与错误提示设置
  11. 深度学习:未来机器人的进化途径
  12. 软考之网络管理员(包含2004-2018历年真题详解+课本教材讲义+视频教程)
  13. ppt背景图片php,ppt背景图片怎么设置 ppt幻灯片制作视频
  14. 深入解读:从DDIM到Improved Denoising Diffusion Probabilistic Models
  15. IDEA 使用破解补丁激活
  16. JavaWeb个人博客项目:手把手教你实现博客后台系统之管理员管理模块5
  17. Android的surface的三种工作方式
  18. 猜拳游戏(基于TCP socket的编程)
  19. Android 经典原生壁纸,福利:精选安卓之父手机原生壁纸 曾力抗苹果华为 如今仅剩经典!...
  20. 宣传片制作的十大步骤

热门文章

  1. 《C语言及程序设计》实践参考——太乐了
  2. 落实业务服务管理从基础设施管理做起
  3. Fort.js – 时尚、现代的进度提示效果
  4. springmvc整合mysql_SpringMVC+Spring+Mybatis+Maven+mysql整合
  5. java 可变参数列表 数组_java可变参数列表如何填充数组?
  6. 关于java构造方法的描述_在JAVA语言中,下面关于构造函数描述正确的是()
  7. 姓名的首字母组成的图案C语言怎么编,c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母:...
  8. 鸿蒙公测第二期报名地址,鸿蒙2.0第二期公测报名入口及参加方法
  9. 通过日志分析mysql访问量,Mysql 慢查询和慢查询日志分析
  10. HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动