最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

BDL-FGL_BASE基本语法(base.StringTokenizer)

开发相关 bron1984 6395浏览
base.StringTokenizer 通过指定分隔符拆分字符串

 

方法:

类方法

create(src STRING, delim STRING) RETURNING base.StringTokenizer 返回一个StringTokenizer对象

createExt(src STRING, delim STRING,esc STRING,nulls STRING,) RETURNING base.StringTokenizer   

                                                                返回一个StringTokenizer对象

对象方法

countTokens() RETURNING INTEGER      返回分隔Tokens数量

hasMoreTokens() RETURNING INTEGER    是否有更多的Tokens,如果有则返回TRUE

nextTokens() RETURNING STRING        返回下一个分隔后的Tokens

 

使用步骤:

①.先定义StringTokenizer变量

②.创建StringTokenizer对象

③.循环hasMoreTokens,然后nextTokens()处理业务逻辑

 

示例:

view plaincopy to clipboardprint?
#base.StringTokenizer      
MAIN     
   DEFINE mutiltok   base.StringTokenizer,     
          exttok     base.StringTokenizer,     
          lashtok    base.StringTokenizer     
               
   #分隔符号一次可以指定多个      
   LET mutiltok = base.StringTokenizer.create("lee|yi,hui-26","+-|,")  #将字符串按+-|,碰到这4个任意一个字符都分割开   
   WHILE mutiltok.hasMoreTokens()     
     DISPLAY mutiltok.nextToken()   #依次取每一个分割串   
   END WHILE     
        
   #处理反斜杠      
   #LET lashtok = base.StringTokenizer.create("C:\My Documents\My Pictures","\\")   #×      
   #LET lashtok = base.StringTokenizer.create("C:\\My Documents\\My Pictures","\")  #×      
   LET lashtok = base.StringTokenizer.create("C:\\My Documents\\My Pictures","\\")  #√      
   WHILE lashtok.hasMoreTokens()     
     DISPLAY lashtok.nextToken()     
   END WHILE     
        
   #第三个参数表上\\用转义|不作为分隔符,TRUE表示空Tokens也纳入计数循环      
   LET exttok = base.StringTokenizer.createExt("||\\|aaa||bbc|","|","\\",TRUE)     
   WHILE exttok.hasMoreTokens()     
     DISPLAY exttok.nextToken()     
   END WHILE     
END MAIN  
#base.StringTokenizer   
MAIN   
   DEFINE mutiltok   base.StringTokenizer,   
          exttok     base.StringTokenizer,   
          lashtok    base.StringTokenizer   
             
   #分隔符号一次可以指定多个   
   LET mutiltok = base.StringTokenizer.create("lee|yi,hui-26","+-|,")  #将字符串按+-|,碰到这4个任意一个字符都分割开
   WHILE mutiltok.hasMoreTokens()   
     DISPLAY mutiltok.nextToken()   #依次取每一个分割串
   END WHILE   
      
   #处理反斜杠   
   #LET lashtok = base.StringTokenizer.create("C:\My Documents\My Pictures","\\")   #×   
   #LET lashtok = base.StringTokenizer.create("C:\\My Documents\\My Pictures","\")  #×   
   LET lashtok = base.StringTokenizer.create("C:\\My Documents\\My Pictures","\\")  #√   
   WHILE lashtok.hasMoreTokens()   
     DISPLAY lashtok.nextToken()   
   END WHILE   
      
   #第三个参数表上\\用转义|不作为分隔符,TRUE表示空Tokens也纳入计数循环   
   LET exttok = base.StringTokenizer.createExt("||\\|aaa||bbc|","|","\\",TRUE)   
   WHILE exttok.hasMoreTokens()   
     DISPLAY exttok.nextToken()   
   END WHILE   
END MAIN


运行:<topprod:/u1/usr/lee/4gl/42m> fglrun 4gl_base.StringTokenizer.42m

结果:

lee   
yi   
hui   
26   
C:   
My Documents   
My Pictures   
   

|aaa   
   
bbc   

 

转载请注明:赫非域 » BDL-FGL_BASE基本语法(base.StringTokenizer)