神棍 List.Accumulate 3

直接上题:
file
废话少说,直接说思路
当然解决的办法有很多,这里我只用其中的一种,
用这个函数解决,这是语法
file
我将第二参数用{{},""}表示,我希望将每次处理的结果放入到列表中 x{0},x{1}完成拼接,
1,观察源是个文本,而List.Accumulate函数 第一参数必须是list ,所以用Text.ToList处理一下,
file
2,发现每个单词的首写均为大写,我就用大写为断点,用if...else 执行,
3,另外 "." 和 " " 这个两个字符我们不需要的点和空格,用if...else if ...then执行,
4,大写字母必须和小写字母连接,小写和小写连接,这是每个单词的规律.用if...then 执行
5,文本最后是小写,所以最后一次的结果无法用if ...else 执行,所以我必须对List.Accumulate(源&{""},第一参数进行处理,连接一个{""},可以让if ...else 执行的条件
完成了构思就可以动手写代码:

= List.Accumulate(源&{""},{{},""},(x,y)=>if x{1}="" or y>"Z" then {x{0},x{1}&y} else if y="." or  y=" " then x else {x{0}&{x{1}},y})

file
这就ok了,最后如果看官有帮助,给我打赏哦!哈哈,人也需要动力