首页 > 编程语言 > 详细

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

时间:2019-06-08 20:29:27      阅读:133      评论:0      收藏:0      [点我收藏+]

字符串的拆分

前言

  字符串的处理是每种语言经常会遇到的问题,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来进行拆分。

 

 

 

  

 

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

原文:https://www.cnblogs.com/RookieSky/p/10991394.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!