首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Bash字符串处置(与Java对照) - 16.判断是否以另外的字符串开头

2012-06-26 
Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头Bash字符串处理(与Java对照) - 16.判断是否

Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头
Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头In JavaString.startsWith

?boolean ??? startsWith(String prefix)
????????? 测试此字符串是否以指定的前缀开始。


?boolean ??? startsWith(String prefix, int toffset)
????????? 测试此字符串是否以指定前缀开始,该前缀以指定索引开始。相当于 this.substring(toffset).startsWith(prefix)

?

StringUtils.startsWith & StringUtils.startsWithIgnoreCase & StringUtils.startsWithAny

?

[root@web ~]# PREFIX=ISO
[root@web ~]# STR=ISO9001
[root@web ~]# [ "${STR:0:3}" == "$PREFIX" ] && echo "starts"
starts
[root@web ~]# N=${#PREFIX}
[root@web ~]# [ "${STR:0:N}" == "$PREFIX" ] && echo "starts"
starts
[root@web ~]# [ "${STR:0:$N}" == "$PREFIX" ] && echo "starts"
starts
[root@web ~]#

?

用case语句来判断是否以别的字符串开头

正确:case "$STR" in "$PREFIX"*) echo "starts"; esac

错误:case "$STR" in "$PREFIX*") echo "starts"; esac

注意*不能写在双引号里面,否则不灵。

?

[root@web ~]# PREFIX=ISO
[root@web ~]# STR=ISO9001
[root@web ~]# case "$STR" in "$PREFIX*") echo "starts"; esac
[root@web ~]# case "$STR" in "$PREFIX"*) echo "starts"; esac
starts
[root@web ~]#

?

?

用掐头法判断是否以别的字符串开头

格式:[ "${STR#$PREFIX}" != "$STR" ]

?

[root@web ~]# PREFIX=ISO
[root@web ~]# STR=ISO9001

[root@web ~]# echo "${STR#$PREFIX}"
9001
[root@web ~]# [ "${STR#$PREFIX}" != "$STR" ] && echo "starts with"
starts with
[root@web ~]#

?

?

其他的利用 grep, expr match, expr substr, cut 等的方法,因为都采用外部命令方式,有些杀鸡用牛刀了,此处不列出了。

?

?

本文链接:http://codingstandards.iteye.com/blog/1186542? (转载请注明出处)

返回目录:Java程序员的Bash实用指南系列之字符串处理(目录)?

上节内容:Bash字符串处理(与Java对照) - 15.计算子串出现的次数

下节内容:Bash字符串处理(与Java对照) - 17.判断是否以另外的字符串结尾

?

?

热点排行