Tcl/Tk语言学习------拆分字符串

字符串的拆分

前言

  字符串的处理是每种语言经常会遇到的问题,tcl作为一门脚本语言自然也不例外,关于字符串的拆分,一般会有两种情况:1.使用单个字符拆分,2.使用字符串拆分。

1.使用单个字符拆分字符串

  

 

  如图所示,使用单个字符可以轻松地分割字符串。

2.使用字符串拆分字符串

  

  当我们使用字符串拆分字符串,tcl会使用字符串中的每个字符来拆分,无法达到我们的目的。

  这时我们可以定义一个快捷的方法来使用字符串拆分字符串,如下是我新建的一个split.tcl文件的内容:

1 proc OnePiece {str sep} {
2     split [string map [list $sep \0] $str ] \0
3 }
4 set a {RookieSky}
5 set b {ok}
6 set c [OnePiece $a $b]
7 puts $c

  接下来我们执行一下这个文件:

  

  从结果中我们可以看出,我们已经成功地使用字符串‘ok’来拆分‘RookieSky’

  NICE!!!

原理

  1.split string ?splitChars?

  根据splitChars变元中的字符分解string,返回一个列表。每个列表元素由string中在splitChars字符之间的字符组成,如果string含有两个连续的字符与splitChars中的字符相同或者第一或最后一个字符为splitChars中的字符就返回一个空列表元素,如果splitChars是一个空字符串那么string的每一个字符作为单独的元素组成列表,缺省splitChars为空格符。

  2.list ?value value …?

  这个命令生成一个list,元素就是所有的value,TCL中list是由一组元素组成的有序集合,list可以嵌套定义,list的每个元素可以是任意字符串,也可以是list。

  3.string map ?-nocase? charMap str

  返回根据 charMap 中输入、输出列表将 str 中的字符进行映射后而产生的新字符串,charMap这个列表中的值我们可以看成{key value key value ...}的映射,str中已经映射过的字符串不会重复映射。

  由此我们可以理解为我们写的方法是将用来拆分的字符串和\0形成一个映射替换后,使用\0来进行拆分。

 

 

 

  

 

转载于:https://www.cnblogs.com/RookieSky/p/10991394.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值