为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Bash字符串处理(与Java对照) - 19_查找字符的位置

2017-12-10 5页 doc 19KB 29阅读

用户头像

is_882336

暂无简介

举报
Bash字符串处理(与Java对照) - 19_查找字符的位置Bash字符串处理(与Java对照) - 19_查找字符的位置 Bash字符串处理(与Java对照) - 19.查找字符的位置 In Java String.indexOf & String.lastIndexOf int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 int indexOf(int ch, int fromIndex) 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处 的索引。 int lastIndexOf(int ch) 返回最后一次出现的指定...
Bash字符串处理(与Java对照) - 19_查找字符的位置
Bash字符串处理(与Java对照) - 19_查找字符的位置 Bash字符串处理(与Java对照) - 19.查找字符的位置 In Java String.indexOf & String.lastIndexOf int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 int indexOf(int ch, int fromIndex) 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处 的索引。 int lastIndexOf(int ch) 返回最后一次出现的指定字符在此字符串中的索引。 int lastIndexOf(int ch, int fromIndex) 从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符 在此字符串中的索引。 StringUtils.indexOf & StringUtils.indexOfAny & StringUtils.indexOfIgnoreCase & StringUtils.lastIndexOf 在 org.apache.commons.lang.StringUtils 中提供了很多查找字符索引的方法, 包括正向和反向。 static int indexOf(String str, char searchChar) Finds the first index within a String, handling null. static int indexOf(String str, char searchChar, int startPos) Finds the first index within a String from a start position, handling null. static int lastIndexOf(String str, char searchChar) Finds the last index within a String, handling null. static int lastIndexOf(String str, char searchChar, int startPos) Finds the last index within a String from a start position, handling null. 在 org.apache.commons.lang.StringUtils 中还提供了查找任意字符出现的位 置的方法。 static int indexOfAny(String str, char[] searchChars) Search a String to find the first index of any character in the given set of characters. static int indexOfAny(String str, String searchChars) Search a String to find the first index of any character in the given set of characters. static int indexOfAnyBut(String str, char[] searchChars) Search a String to find the first index of any character not in the given set of characters. static int indexOfAnyBut(String str, String searchChars) Search a String to find the first index of any character not in the given set of characters. In Bash 使用遍历字符的方式来查找字符的位置 函数:strchr ;否则打印-1,退出如果找到,打印字符的位置,从0开始计数,退出码为0 码为1 strchr(){ local i for ((i=0; i<${#1}; ++i)) do if [ "${1:i:1}" == "$2" ]; then echo $i return 0 fi done echo -1 return 1 } [root@web ~]# STR=123456789 [root@web ~]# CH=6 [root@web ~]# strchr "$STR" "$CH" 5 [root@web ~]# echo $? 0 [root@web ~]# CH=a [root@web ~]# strchr "$STR" "$CH" -1 [root@web ~]# echo $? 1 [root@web ~]# 用expr index来查找字符的位置 格式:expr index "$STR" "$CHARS" 在STR中查找CHARS中的任何字符(而不是子串),打印第一个位置。 注意:返回的下标是从1开始的,0表示没有找到。 不完全对应于Java的indexOf方法。倒是与C++ STL string的find_first_of相似。 man expr 写道 index STRING CHARS index in STRING where any CHARS is found, or 0 [root@jfht ~]# STR="Hello World" [root@jfht ~]# SUB="l" [root@jfht ~]# expr index "$STR" "$SUB" 3 [root@jfht ~]# SUB="not found" # 注意,expr index并不能用能查找 子串的位置,而是该字符串中任何字符首次出现的位置 [root@jfht ~]# expr index "$STR" "$SUB" 5 用awk index来查找字符出现的位置 格式1:awk -v "STR=$STR" -v "CH=$CH" '{print index(STR,CH)}' <<<"" 格式2:echo | awk -v "STR=$STR" -v "CH=$CH" '{print index(STR,CH)}' 因为awk默认会从标准输入读取数据,所以必须进行输入的重定向。 此方法不仅可以查询字符的出现位置,也可以查询子串的出现位置。但不能查 找任意字符的出现位置。 注意:索引位置从1开始计数,0表示没有找到。 man awk 写道 index(s, t) Returns the index of the string t in the string s, or 0 if t is not present. (This implies that character indices start at one.) [root@web ~]# STR=123456789 [root@web ~]# CH=6 [root@web ~]# awk -v "STR=$STR" -v "CH=$CH" '{print index(STR,CH)}' <<<"" 6 [root@web ~]# echo | awk -v "STR=$STR" -v "CH=$CH" '{print index(STR,CH)}' 6 [root@web ~]# 本文链接:file:///D:/blog/1198917 (转载请注明出处) 返回目录:Java程序员的Bash实用指南系列之字符串处理(目录) 上节内容:Bash字符串处理(与Java对照) - 18.格式化字符串 下节内容:Bash字符串处理(与Java对照) - 20.查找子串的位置
/
本文档为【Bash字符串处理(与Java对照) - 19_查找字符的位置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索