当ABAP社区编码挑战赛第一次宣布的时候,我唯一想到的就是如何用尽可能少的行写
而我所做的最好的事情就是在我提交了第一个解决方案之后,1元云购,我没有停止尝试新的方法,我读了很多次文档来改进我的方法,永久免费的云服务器,最后我发了5封邮件,里面有5种不同的解决方案。
虽然我没有进入决赛,但我真的很喜欢并喜欢做这个挑战。
现在我将展示我用来解决这个挑战的5种不同方法。
解决方案#1
亮点:
一行解决方案使用正则表达式已用CL\u ABAP\u REGEX类()最丑的?
我真的认为我破解了SAP编码的挑战,在那里做了这个解决方案
因为我不知道正则表达式兼容的字符串函数在那个时间点,我尝试使用CL\u ABAP\u regex类,它的工作令人惊讶。您可以看到,微信返利机器人,我使用create#matcher和find#all来计算模式匹配。
我使用"FOR"来循环并填充最终的字符串表(没有连接),我在所有其他解决方案中使用了类似的方法。
解决方案#2
所以在阅读文档之后,一次又一次,我发现我可以使用支持REGEX的字符串函数,现在我可以完全取消上述类的使用Regex字符串函数
使用"Count"和"Match"取代了所有与类相关的代码,现在变得更干净了。
解决方案#3
所以在那之后,物联网应用技术是什么,我认为使用"Regex"就足够了,并试图找到一个不使用它的不同解决方案。
重点:
不是一行解决方案没有正则表达式使用自动排序并提供唯一记录的"组"查找唯一字符
正如我所想,没有其他方法可以查找总字数,我最终使用压缩和拆分来获得总字数。
我使用"分组方式"查找唯一字符。虽然我在我的项目中多次使用"分组方式",云服务器租用,但直到那时我才意识到我可以这样使用它。
解决方案#4
在托马斯·荣格(Thomas Jung)和其他一些人提到清洁解决方案的重要性之后,我想我应该用一种简单易读的方法来做。这里是
亮点:
不是一线解决方案简单易读的方法
解决方案#5(最终)
这是我提交的最终解决方案,也是我最喜欢的解决方案。我发现我不需要再将单词拆分到外部,可以使用"Segment"字符串函数获得单词和计数空间,从而找到单词总数。
突出显示:
单行解决方案我最喜欢的一个(尽管它仍然很丑)没有Regex
所以在这次挑战的最后,我学到了很多关于Regex、字符串函数和许多新的ABAP语法的用法。
我做了这个挑战后感到非常自信,后来我甚至回答了一些关于Regex、字符串函数和新的ABAP语法的问题。但是,仍然有很多东西要学,比如,看看桑德拉·罗西的这个很棒的解决方案,我就像(头脑=崩溃),花了那么多时间才明白
https://answers.sap.com/questions/13058395/add-a-check-or-continue-in-a-for-loop-expression.html
虽然我从很久以前就开始在我的项目中使用新的ABAP,但这个挑战让我用新的ABAP语法探索更多的可能性(特别是因为我试图用一行代码来解决这个问题)。如果我没有尝试一个一行的解决方案,我肯定不会探索所有这些,最重要的是我做这件事的乐趣n:)
我也做了编码挑战#2的乐趣,也许我会在另一篇博文中分享它