在ABAP、SAP中,有没有一种方法可以将包含特定字符的字符串中的单词加倍



给出一个字符串。请将字符串中以符号"a"开头的每个单词加倍。用空格符号分隔的单词。例如:

  • 输入:我的公寓里有一个苹果
  • 输出:我的公寓里有一个苹果

有多种方法可以做到这一点。

您可以使用SPLIT string AT space INTO TABLE DATA(tokens)将字符串标记为其单词,然后使用LOOP AT tokens将单词重新组合为新字符串,如果使用to_lower( token(1) ) = 'a',则标记加倍。

或者,您可以使用正则表达式来匹配所有以aA开头的单词,然后使用匹配的位置来重复匹配的单词。不过,你必须自己计算reg ex。

你也可以构建一个自动机来查看一个又一个字符,如果它遇到一个以"开头的单词,就会达到特定的状态;a";,然后克隆匹配的单词。不过,这听起来有点过头了,更适合构建解析器等更复杂的情况。

从商业角度来看,你的问题听起来毫无意义,所以我认为这是一个家庭作业中的问题。因此,我没有提供一个成熟、有效的答案,而是只概述了解决这个问题的可能方法。

根据我如何询问和回答家庭作业问题,你不应该简单地提出这些问题,而应该提供你已经尝试过的东西,以及你在哪个特定的地方遇到了麻烦。否则,人们会投票结束你的问题,他们确实已经开始这样做了。

最新更新