`
Dead_knight
  • 浏览: 1201069 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
752c8642-b795-3fe6-946e-a4e845bffdec
Spring Securi...
浏览量:240232
33caa84e-18a6-3036-a82b-6e2106a4de63
clojure专题
浏览量:48938
E17ca077-44df-3816-a3fe-471c43f6e1e5
WebLogic11g
浏览量:236878
社区版块
存档分类
最新评论

clojure-基本语法-字符串类型

阅读更多
一、创建
函数str:
函数 (str) 接受任意数量的参数。如果参数不是字符串则将其转换为字符串,返回创建的新字符串。如果没有参数或为nil,则返回空字符串,""。
user=> (str 1)
"1"
user=> (str -2.5)
"-2.5"
user=> (str "a")
"a"
user=> (str "abc" 123)
"abc123"
user=> (str)
""
user=> (str '(1 2 3))
"(1 2 3)"
user=> (str nil)
""


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

二、string操作
count函数:
count函数接受字符串参数时,返回字符串的字符数。
user=> (count "abc123")
6
user=> (count nil)
0


subs函数:
subs函数接受两个或三个参数, 第一个是字符串,第二个是一个整数偏移量,第三个(可选)是另一个整数偏移量。函数返回从第一个偏移量(含),到第二个(不含)偏移量或者结尾(如果没有第二个偏移量)截取的子字符串。
user=> (subs "Clojure" 1)
"lojure"
user=> (subs "Clojure" 1 3)
"lo"
user=> (subs "Clojure" 1 20)
StringIndexOutOfBoundsException String index out of range: 20  java.lang.String.
substring (String.java:1934)


format函数:
format函数用于格式化字符串。使用jdk的java.util.Formatter类完成格式化。
user=> (format "hello there, %s" "clojure")
"hello there, clojure"
user=> (format "%5d" 3)
"    3"
user=> (format "pad with leading zeros %07d" 5432)
"pad with leading zeros 0005432"


检查函数
字符串检查函数 (string?) 接受一个参数,如果是字符串返回true,否则返回false
user=> (string? "abc")
true
user=> (string? 12)
false

字符检查函数(char?)接受一个参数,如果是字符类型返回true,否则返回false
user=> (char? "abc")
false
user=> (char? \a)
true
user=> (char? 1)
false
分享到:
评论

相关推荐

    clojure-rust:Clojure转换为Rust编译器

    1. **词法分析**:首先,编译器会读取Clojure源代码,进行词法分析,识别出符号、数字、字符串、注释等基本元素。 2. **语法解析**:接着,编译器进行语法解析,将词法单元转化为抽象语法树(AST),这一步是语言...

    clojure cheatsheet-usletter-color.pdf

    通过以上解析可以看出,Clojure Cheat Sheet覆盖了Clojure语言的基本语法、内置函数、宏以及其他常用的功能,这对于初学者来说是一个非常有用的资源。它不仅帮助用户快速掌握Clojure的核心概念,还提供了实际编程中...

    clojure-by-example:针对Clojure的程序员的研讨会

    1. **基础语法**:介绍Clojure的基本语法,如S表达式、符号、数字、字符串、布尔值等,并演示如何在Clojure中读写这些基本类型。 2. **函数与高阶函数**:Clojure的函数是第一类公民,可以作为参数传递,也可以作为...

    Clojure入门教程.pdf

    - **数据类型**:包括但不限于数字、字符串、向量、列表、映射、集等。 - **条件处理**:使用`if`、`cond`等关键字来进行条件判断和分支处理。 - **循环结构**:通过递归或使用如`dotimes`、`for`等函数实现循环操作...

    Clojure学习教程.pdf

    Clojure拥有一系列的基本数据类型,包括数字(整数、浮点数)、字符、字符串、关键字(keywords)、符号(symbols)和列表(lists)。在提供的文档片段中,可以看到使用了str函数来合并字符串,例如 `(str "Hello" ...

    Python-HoneySQL将Clojure数据结构转换为SQL

    在实际项目中,你可以根据Clojure数据结构构建的查询对象,与Python的数据库API结合,将查询转换为字符串,再执行数据库操作。例如,如果你使用的是psycopg2,可以这样做: ```python import psycopg2 connection =...

    sicp-clojure:在 Clojure 中解决的 SICP 练习

    在 sicp-clojure 中,你会看到如何使用 Clojure 的基本数据类型,如符号(symbols)、列表(lists)、数字和字符串,以及如何定义函数(functions)。 2. **函数式编程**:Clojure 强调纯函数(pure functions),...

    Clojure Handbook (by jamesqiu).pdf

    2.4 基本类型:Clojure提供了丰富的基本数据类型,如数字、字符串、布尔值等。 2.5 类型判断:Clojure允许程序员通过一些内置函数来判断值的类型。 2.6 执行多条语句:使用do函数可以在一个表达式中顺序执行多条...

    parseclj:Emacs Lisp的Clojure解析器

    1. **源代码解析**:它将Clojure源代码字符串转换为AST,这个过程涉及到词法分析和语法分析。词法分析将源代码分解成一个个符号(tokens),语法分析则根据Clojure的语法规则把这些符号组合成AST。 2. **AST操作**...

    commonmark-hiccup:可配置的Clojure库,用于将markdown转换为HTML

    3. 转换Markdown:使用提供的函数,如`cmh/html`,将Markdown字符串转换为HTML字符串。 4. 自定义配置:如果你需要自定义Markdown解析器的行为,可以传递一个配置map给转换函数,覆盖默认设置。 5. 处理子文件:如果...

    无涯教程(LearnFk)-LISP教程离线版.pdf

    LISP程序的基本结构是S-表达式,它是以括号表示的列表形式出现的表达式,可以包含原子、列表和字符串。S-表达式的运算遵循前缀表示法,即运算符位于操作数之前。例如,数学表达式“a*(b+c)/d”会被写为“(/(*a(+bc))...

    java关于字符串拼接的笔试题-foil:一个小的编译和静态类型的Lisp

    语法。 (Clojure,方案) 受 Clojure / Scheme R7RS + libc 启发的标准库。 宏。 REPL:首选但不是关键。 渐进的纯函数式 -> 系统编程。 (Clojure、OCaml、Rust) 持久数据结构。 默认情况下渴望,懒惰可能。 经...

    metaclj:通过环境和特殊形式的语法引用对Clojure进行分阶段编译

    元数据通常用于存储关于代码的元信息,例如文档字符串、作者或者编译选项。 `metaclj` 提供了一种方式来控制编译流程,允许开发者将代码分为不同的编译阶段。这种分阶段编译(staging)的概念源自于函数式编程中的...

    clojurebits:涉足Clojure

    数据类型包括数字、字符串、布尔值、符号、向量、映射、集合和引用。其中,向量和映射都是可变的,但可以通过创建不可变数据结构(如PersistentVector和PersistentHashMap)来实现高效的更新操作,这是Clojure处理...

    bencode:Clojure的netstring和bencode实现

    它支持整数、字符串、列表和字典四种基本数据类型,易于解析和生成。 3. **netstrings**:Netstrings是一种简单的协议,用于在网络上传输字符串。它在字符串的开头表示字符串的长度,后面跟着逗号和结束的冒号,如...

    celtuce:莴苣的Clojure包装器(Java Redis客户端)

    1. **Redis 数据结构**:Redis 支持多种数据结构,如字符串、哈希、列表、集合和有序集合,celtuce 提供了对应的 Clojure 接口进行操作。 2. **非阻塞 I/O**:Lettuce 使用 Netty 库实现非阻塞 I/O,celtuce 通过...

    4clojure:包含有关Clojure拼图的解决方案,网址为http

    4clojure上的每个拼图都对应一个特定的Clojure问题,通常涉及语言的不同方面,如函数、逻辑、数学或字符串处理。解决这些拼图可以帮助你熟悉Clojure的语法和核心库。例如,一个拼图可能要求你实现一个计算斐波那契...

Global site tag (gtag.js) - Google Analytics