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)