HCI中的Groovy脚本截断字符串

2020-09-07 06:20发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们有要求 -截断...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我们有要求

-截断40 -40个字符的字符串(单词组合)。 所以我们有1个输入和2个输出字段

-在第一个字段中,我们需要检查最后一个单词是否低于40个计数。 它将被添加到第一字段中,否则将其移至第二字段。(在第二字段中,我们也必须应用相同的逻辑),其余40也应在第二字段中进行调整。

-例如 "请访问社区资源部分,"此字符串的总数为49。 现在"请访问社区资源秒"的长度最多为40。因此,我们需要忽略"部分"并将其移至下一个字段。

因此,第一个字段应填写为""请访​​问社区资源",而下一个字段应填写为"适用于"的部分

7条回答
hengyuye
2020-09-07 07:19 .采纳回答

您好,Anurag

实际上,您的问题并不简单。 想到的第一个解决方案是使用\ s +正则表达式(即空白)上的String.split拆分字符串。 但是,String.split占用了分隔符,这意味着所有空格将从文本中消失。 不好。

不过,还有另一种选择。 在单词边界\ b上拆分会保留空格,并且实际上还解决了一些特殊情况,例如在逗号上拆分。

下面是一些示例代码:

 def splitLen = 40
 def splitRegex =/\ b/
 def b =新的StringBuilder()

 originalString.split(splitRegex).each {s->
     如果(b.length()+ s.length()<= splitLen){
        //正在构建的字符串可以适合此子字符串。
         b。附录
     }其他{
        //正在构建的字符串无法适合此子字符串。
         output.addValue(b.toString())
         b.setLength(0)
         b。附录
     }
 }

 如果(b.length()> 0){
     output.addValue(b.toString())
 } 

我沿单词边界拆分原始字符串,然后遍历每个结果子字符串。 StringBuilder构建每个要输入到输出中的字符串。 有两种情况需要处理:

  1. StringBuilder可以适合当前的子字符串
  2. StringBuilder不能适合当前的子字符串

Sriprasad Shivaram Bhat 指出,代码当然应该包装在自定义函数中。

问候,

Morten

一周热门 更多>