`
huanghongqiao
  • 浏览: 1702 次
  • 性别: Icon_minigender_1
  • 来自: liuzhou
最近访客 更多访客>>
社区版块
存档分类
最新评论

获取随机字符串(Clojure)

 
阅读更多
  处女贴,不知道写什么,把今天在群里讨论的贴上来好了。

 (defn ^String rand-str [N] 
  (loop [sb (StringBuilder. "") 
         x N  
         s (get "0123456789" (rand-int 10))]
     (if (> x 0) 
         (recur (-> sb (.append s)) (- x 1) 
                 (get "0123456789" (rand-int 10)))  
          (str sb)))
  )

 (rand-str 15)


这个是我写的,不喜欢(get "0123456789" (rand-int 10)) 两次,又改:
  (defn ^String rand-str [N] 
  (loop [sb (StringBuilder. "") 
         x ( + 1 N)  
         s \ ]
     (if (> x 0) 
         (recur (-> sb (.append s)) (- x 1) 
                 (get "abcdefghijklmnopqrstuvwxyz0123456789" (rand-int 37)))  
          (clojure.string/trim sb)))
   )

(rand-str 10)


不过我觉得群友的更简洁一些:
  (defn rand-str [n] 
   (clojure.string/join (repeatedly n 
           #(rand-nth "abcdefghijklmnopqrstuvwxyz0123456789"))))
   (rand-str 10)


还有人这样写:
  
(subs (str (Object.)) 17)
分享到:
评论

相关推荐

    string-split:在 Clojure 中拆分字符串的各种方法

    在 Clojure 中拆分字符串 该项目演示了在 Clojure 中拆分字符串的各种方法。 选择特定变体时,不要忘记检查输入要求: 一些变体适用于字符集合并支持动态处理和无限集合,一些仅适用于已加载到内存中的字符串。 ...

    clojure-humanize, 在clojure中,生成可以读的字符串.zip

    clojure-humanize, 在clojure中,生成可以读的字符串 人性化的clojure 基于其他语言的类似库生成可以读字符串的Clojure(script) 库,用于数字。日期命令行 Leiningen( 。通过 Clojars ) 用法numberwordintcommaint

    clojure cheatsheet-usletter-color.pdf

    - `get`: 获取字符串中指定位置的字符。 - `subs`: 获取字符串的子串。 - `compare`: 比较两个字符串。 - **Regex** - `#"pattern"`, `re-find`, `re-seq`, `re-matches`, `re-pattern`, `re-matcher`, `re-...

    Clojure入门教程- Clojure – Functional Programming for the JVM中文版

    - **在线论坛和社区**: 学习者可以通过参与Clojure的在线社区,如Clojure用户组、Stack Overflow等获取帮助和支持。 - **书籍**: 有许多优秀的书籍可以帮助深入理解Clojure的语言特性和最佳实践,如《Clojure in ...

    Clojure入门教程.pdf

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

    clojure电子书

    《Clojure电子书》集合包含了三本关于Clojure编程的重要书籍和一个Leiningen的Windows安装程序,这对于学习和深入理解Clojure语言至关重要。Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,...

    Clojure编程乐趣]+clojure_programming.pdf

    Clojure是一种基于Lisp家族的函数式编程语言,它运行在Java虚拟机(JVM)上,同时也支持JavaScript和其他平台。Clojure的设计目标是提供一个高效、并发、可移植的环境,适合解决现代软件开发中的复杂问题。在这个...

    Practical Clojure.pdf

    根据提供的文件内容,我们可以提取出以下关于Clojure语言的知识点: Clojure是一种编程语言,它给作者留下了深刻的印象,并且被视为一种多用途的、全面的编程语言。作者在开始学习Clojure时,体会到了编程的乐趣,...

    Programming Clojure 英文电子版

    ### 编程Clojure:全面解析与学习指南 #### 一、Clojure语言概述 《Programming Clojure》是一本深入探讨Clojure编程语言的书籍,该书由Stuart Halloway编写,出版于2009年3月,由Pragmatic Bookshelf出版社发行。...

    Clojure学习教程.pdf

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

    Clojure调用Java类的一个实例

    例如,如果`HelloWorld`类有一个接受字符串参数的构造函数,我们可以通过`new`关键字创建实例: ```clojure (let [instance (new com.example.HelloWorld "Clojure is calling!")] (.sayHello instance)) ``` ...

    Professional.Clojure.1119267277

    Clear, practical Clojure for the professional programmer Professional Clojure is the experienced developer's guide to functional programming using the Clojure language. Designed specifically to meet ...

    Clojure电子书合集1(12本)

    [2009] Programming Clojure.(Stuart Halloway).[1934356336].pdf [2010] Functional Programming with Clojure - Simple Concurrency on the JVM.(Tim Berglund, Matthew McCullough).[193650202X].pdf [2010] ...

    clojure1.3.0及资料

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java的生态系统。Clojure的设计目标是提供一种静态类型的、并发的、内存安全的语言,同时保持Lisp的简洁性和灵活性。在这个压缩包...

    Lacinia纯Clojure实现的GraphQL

    它提供了一种高效、灵活的方式来获取API数据,允许客户端指定他们需要什么数据,从而避免了过度获取或不足获取的问题。Lacinia是基于Clojure实现的一个GraphQL解析器,它为Clojure开发者提供了直接在Clojure环境中...

    Clojure Data Analysis Cookbook

    ### Clojure 数据分析实战指南 #### 一、书籍概述与背景 《Clojure 数据分析实战指南》是一本针对数据分析师和技术开发人员的实用手册。本书由 Eric Rochester 编写,旨在帮助读者通过超过110个实用案例深入了解...

Global site tag (gtag.js) - Google Analytics