【问题标题】:How to split a sentence into words by detecting space in clojure如何通过检测clojure中的空格将句子分成单词
【发布时间】:2016-03-06 23:01:50
【问题描述】:

我想通过检测空格将一个句子分成单词。例如,

user=>(split "I like reading books")
["I" "like" "reading" "books"]

我的代码是

(use '[clojure.string :only(split triml)])

但是当我编译它时,我得到了“nil”

(load-file "file")
nil  
user=>(split "I like reading books")
["I" "like" "reading" "books"]

我该怎么做才能摆脱“nil”或者有没有其他方法可以将句子分成没有幻灯片效果的单词。谢谢!

【问题讨论】:

  • 我不明白你的问题; (clojure.string/split "I like reading books" #"\s+") 对我来说很好用。

标签: clojure


【解决方案1】:

我有点明白你的意思,所以我会尽力回答。

显然,您正在运行 REPL 会话。 REPL、WILL,接受输入表达式,对其求值,并输出求值结果。

当你输入(load-file "file")时,它是一个表达式,而不是一个指令,它会有一个返回值,即nil。我们评估这个表达式只是为了它的副作用——加载相应的文件。注意区别:nil 是结果,加载代码是副作用。

据我所知,您不能禁止 REPL 的返回值。但你真的不应该担心这一点。你不会在生产环境中运行 REPL,是吗?

【讨论】:

    【解决方案2】:

    要通过检测空格将句子拆分为单词,您必须调用

    (clojure.string/split your-sentence #" ")
    

    或者在你的情况下

    (clojure.string/split "I like reading books" #" ")
    

    'split'需要两个参数:第一个是要拆分的字符串,第二个是要拆分字符串的正则表达式。

    更多详情请看这里:

    https://clojuredocs.org/clojure.string/split

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-20
      • 2012-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多