【问题标题】:How do i get the longest word from 1 variable我如何从 1 个变量中获得最长的单词
【发布时间】:2020-02-26 10:11:55
【问题描述】:

将变量 cWord 定义为 Character no-undo。

cWord = "Web 开发工具"。

需要的输出

发展

当它只有 1 个变量时,我如何从中获得最长的单词,

顺便说一句,这是一个progress4gl代码

【问题讨论】:

  • 到目前为止你的尝试是什么?它是如何失败的?

标签: openedge progress-4gl


【解决方案1】:
DEFINE VARIABLE cWord          AS CHARACTER   NO-UNDO.
DEFINE VARIABLE iWord          AS INTEGER     NO-UNDO.
DEFINE VARIABLE iLongest       AS INTEGER     NO-UNDO.
DEFINE VARIABLE iLength        AS INTEGER     NO-UNDO.
DEFINE VARIABLE iLongestLength AS INTEGER     NO-UNDO.
DEFINE VARIABLE iEntries       AS INTEGER     NO-UNDO.

ASSIGN cWord = "Web Development Tool"

       iEntries = NUM-ENTRIES (cWord, " ").

DO iWord = 1 TO iEntries:

    ASSIGN iLength = LENGTH (ENTRY (iWord, cWord, " ")) . 

    IF iLength > iLongestLength THEN
    DO:
        ASSIGN iLongest       = iWord
               iLongestLength = iLength .        
    END.
END.

MESSAGE ENTRY (iLongest, cWord, " ") 
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.

【讨论】:

    【解决方案2】:

    仅仅因为我最喜欢的锤子是临时表;-)

    def var cword as longchar no-undo init "Web Development Tool".
    
    define temp-table tt no-undo
       field cc as char
       .
    
    temp-table tt:read-json( 
        "longchar", 
        '~{"tt":[~{"cc":"' + replace( cword, ' ', '"},~{"cc":"' ) + '"}]}'
    ).
    
    for each tt by length( cc ) descending:
        message tt.cc.
        leave.
    end.
    

    https://abldojo.services.progress.com:443/#/?shareId=5e56f4a84b1a0f40c34b8c3c

    【讨论】:

      【解决方案3】:

      如果你有两个长度相同的单词,这将首先返回。

      DEF VAR iCount      AS INT  NO-UNDO.
      DEF VAR cLongest    AS CHAR NO-UNDO.
      DEF VAR cString     AS CHAR NO-UNDO INIT 'Web Development Tool'.
      
      DO  iCount = 1 TO NUM-ENTRIES(cString,' '):
          cLongest = (IF LENGTH(ENTRY(iCount,cString,' ')) > LENGTH(cLongest) THEN ENTRY(iCount,cString,' ') ELSE cLongest).
      END.
      
      MESSAGE cLongest
          VIEW-AS ALERT-BOX INFO BUTTONS OK.
      

      【讨论】:

        猜你喜欢
        • 2022-07-03
        • 2021-07-03
        • 1970-01-01
        • 2021-05-04
        • 1970-01-01
        • 2020-12-03
        • 1970-01-01
        • 2017-03-31
        • 2012-04-12
        相关资源
        最近更新 更多