当前位置: 首页 > 知识库问答 >
问题:

尝试在Clojure中拆分字符串遇到惰性seq问题

汪高岑
2023-03-14

我正在处理一个问题,要在文件中读入这样的行:

A abcdefg
B bcdefgh

但是我不断得到关于懒惰序列与Java Charseq不兼容的错误。

(def notlazy (doall lyne2))
(realized? notlazy)
true
(str/split notlazy #" ")
ClassCastException class clojure.lang.LazySeq cannot be cast to class
  java.lang.CharSequence (clojure.lang.LazySeq is in unnamed module of
  loader 'app'; java.lang.CharSequence is in module java.base of loader
  'bootstrap')  clojure.string/split (string.clj:219)

救命啊!

共有1个答案

梁华清
2023-03-14

str/split的第一个参数必须是要拆分的charsequence。您可能希望按照可以使用map的序列拆分每个输入行,而不需要急切地计算输入序列:

(map (fn [line] (str/split line #" ")) lyne2)
 类似资料:
  • 问题内容: 这是我的应用程序中的当前代码: 在对应用程序进行性能分析时,我注意到用于拆分字符串的时间不可忽略。 我还了解到,实际上需要一个正则表达式,这对我来说毫无用处。 所以我的问题是, 我可以使用哪种替代方法来优化字符串拆分? 我见过,但是速度更快吗? (我会尝试并测试自己,但是对我的应用程序进行性能分析需要花费很多时间,因此,如果有人已经知道答案,那么可以节省一些时间) 问题答案: 如果您的

  • 问题内容: 文件names.txt由许多名称组成,格式为: 有谁知道如何分割字符串,以便用逗号分隔各个名称? 以下代码按逗号分隔,并在名称两边加上引号,什么是转义字符以分隔出。可以在一个Split语句中完成,拆分并用逗号分隔吗? 顺便说一句,这是Project Euler问题#22的一部分。http://projecteuler.net/problem=22 问题答案: 杰里米(Jeremy)的回

  • 问题 你想拆分一个字符串。 解决方案 使用 JavaScript 字符串的 split() 方法: "foo bar baz".split " " # => [ 'foo', 'bar', 'baz' ] 讨论 String 的这个 split() 方法是标准的 JavaScript 方法。可以用来基于任何分隔符——包括正则表达式来拆分字符串。这个方法还可以接受第二个参数,用于指定返回的子字符串数

  • 问题内容: 假设有一个字符串… 我想要的就是将字符串拆分为“ my”,“ big”,“ string”等。因此,我尝试 返回java.util.regex.PatternSyntaxException:在索引0附近悬挂元字符’*’ 是正则表达式中的特殊字符,所以我尝试转义…。 同样的例外。我认为有人会知道快速解决方案。谢谢。 问题答案: 和我一起工作。

  • 问题内容: 我有一个名为的字符串,其形式像这样 。 我想使用:分隔符。 这样一来,单词将被拆分成自己的字符串,并将成为另一个字符串。 然后我只想使用2种不同的字符串来显示该字符串。 解决这个问题的最佳方法是什么? 问题答案: 你可能要删除第二个字符串的空格: 如果要用特殊字符(例如dot(。))分割字符串,则应在点之前使用转义字符\ 例: 还有其他方法可以做到这一点。例如,你可以使用类(来自):

  • 问题内容: 如何在PHP中使用定界符分割字符串?例如,如果我有字符串,我如何得到? 问题答案: 做这项工作: 您还可以直接将部分结果提取到变量中: