haskell - 如何拆分具有两个条件的字符串?
问题描述
所以基本上我想用两个条件分割我的字符串,当有一个空格或与下一个不同的字母时。
一个例子:
如果我有这个字符串,"AAA ADDD DD"
我想拆分成这个,["AAA","A","DDD","DD"]
所以我做了这个代码:
sliceIt :: String -> [String]
sliceIt xs = words xs
但它仅在存在空白时才拆分初始字符串。当一个字符与另一个字符相邻时,我如何也可以拆分?这个问题可以用递归更容易解决吗?
解决方案
所以你想分割words
,然后group
在每个分割中相等的元素。你有这样做的功能,
import Data.List
sliceIt :: String -> [String]
sliceIt s = concatMap group $ words s
sliceItPointFree = concatMap group . words -- Point free notation. Same but cooler
推荐阅读
- tensorflow - CuDNNGRU 模型过拟合,acc 和 val_acc 不变
- angular - 我们可以在 Modals 中命名名为“Router”的类吗?
- javascript - 打字稿私有只读与类 const 之外
- excel - 获取匹配值的行
- php - Ajax 调用自动完成 html 以插入到带有 innerHTML 的页面中。表格不起作用
- java - Spring Security 身份验证仅适用于一个用户名和密码
- javascript - 对条件 Array.sort() 的开玩笑覆盖
- javascript - 在javascript中如何获取json节点的遍历路径
- php - 问题打印 unicode 和阿拉伯字符
- c - 如何使用带有 netlink 套接字的 libnl 将设备连接到带有 WPA2 的 AP?