2016-03-06 23 views
-3

我想通过检测空格将句子拆分为单词。例如,如何通过检测clojure中的空间将句子拆分为单词

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

我的代码是

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

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

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

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

+3

我不明白你的问题; '(clojure.string/split“我喜欢读书”#“\ s +”)'对我来说工作得很好。 –

回答

2

我得到了你坚持的观点,所以我会尽力回答。

显然,您正在运行REPL会话。 REPL,WILL,接受输入表达式,评估它并输出评估结果。

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

在我的知识中,你不能抑制REPL的返回值。但你真的不应该担心这一点。你不会在生产中运行REPL,对吗?

1

要通过检测空间分割句子转化成的话,你必须调用

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

或在您的情况

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

“分裂”需要两个参数:第一个是你想要的字符串拆分,第二个是必须在其上拆分字符串的正则表达式。

在这里看到更多的细节:

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

相关问题