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