Tcl命令操作实验

字符串操作:

string option string1 string2

其中option可以是:

compare 按字母顺序比较,小于则返回-1,等于返回0,大于返回1

match 判断是否匹配

first判断string2中string1第一次出现的位置,如果没有则返回-1

last 和first作用相反,最后一次出现的位置,如果没有则返回-1

trim 删除string1的开头和结尾的string2,中间的不会删除

1string trim ____abc_def____ _abc_def_ 2string trim ____abc_def____ 3____abc_def____ 4string trim ____abc_def____ ____ 5abc_def 6string trim ____abc_def____ a 7____abc_def____ 8string trim abcdabcd a 9bcdabcd 10string trim abcdabcda a 11bcdabcd 12string compare abc bcd 13-1 14string compare 234 123 151 16string match 123 2 170 18string match 123 123 191 20string first abc 123abc234abc567 213 22string last abc 123abc234abc567 239

string option string命令,其中option可以是:

tolower 返回转换成小写字母之后的新字符串

toupper大写

trimleft删除左边的所有空白字符

length 返回长度

1string tolower abCdEfg 2abcdefg 3string toupper abcdefg 4ABCDEFG 5string length abcdef 66

string range命令:

1string range abcdefg 2 3 2cd 3string range abcdefg 1 3 4bcd 5string range abcdefg 2 3 6cd 7string range abcdefg 2 4 8cde 9string range abcdefg 2 5 10cdef 11 12通过以上实验发现string range命令的第一个数字和第二个数字分别代表字符串中的起始位置和结束位置,特别是第二个数字并不是代表要截取的子字符串的长度

 append命令:字符串追加,可以无限追加

1set n 123 2123 3 4append n a b c 5123abc 6 7puts $n 8123abc

split命令 将字符串转换成列表,格式为:split string 分隔符

1puts $n 2123abc 3split $n a 4123 bc 5 6split abcdefg e 7abcd fg

Tcl中只有字符串型变量,所以用到数字进行计算时需要用到incr和expr操作命令

1array name a 21 15 16 3incr a(0) +3 43 5array name a 60 1 15 16 7array leng a 8bad option "leng": must be anymore, donesearch, exists, get, names, nextelement, set, size, startsearch, statistics, or unset 9array length a 10bad option "length": must be anymore, donesearch, exists, get, names, nextelement, set, size, startsearch, statistics, or unset 11array size a 124 13set j 123 14123 15incr j +100 16223 17puts $j 18223 19incr j 20224

expr命令有点类似C语言中的算术操作符(Tcl中逻辑真值是1,逻辑假值是0),有!(只要是0,执行!0之后就是1,只要是非零,执行!之后就是0),

1parray a 2a(0) = 0 3a(1) = 0 4a(15) = hello 5a(16) = 16 6expr !$a(1) 71 8expr !$a(15) 9invalid bareword "hello" 10in expression "!hello"; 11should be "$hello" or "{hello}" or "hello(...)" or ...

注意上面的错误提示:我猜想有可能Tcl命令中能够将一个命令的执行结果当作另一个命令的变量

1expr 5 * $a(16) 280 3expr 12 >> 1 46 5expr 12 << 1 624 7expr 3>2 ? 5:6 85 9expr 3<2 ? 5:6 106 11expr 5 %2 121 13expr 5 /2 142 15expr 5 /1.2 164.166666666666667 17expr 5 % 1.2 18can't use floating-point value as operand of "%" 19expr abc(-3) 20invalid command name "tcl::mathfunc::abc" 21expr abs(-3) 223 23expr round(1.234) 241 25expr round(1.634) 262 27expr sin(3.14 /2) 280.9999996829318346 29expr cos(0) 301.0
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

SpringBoot自定义序列化的使用方式

场景及需求:项目接入了SpringBoot开发,现在需求是服务端接口返回的字段如果为空,那么自动转为空字符串。例如:\    {        "id":1,        "name":null    },    {        "id":2,        "name":"x