寻找所有指定字符--扩展为数组判重

7,814 阅读1分钟

1.利用字符串的indexOf()允许接收第二个参数,指定开始寻找的位置的特性,加上循环,就可找出指定字符在字符串中出现了几次,位置分别是什么,先上代码:

原理分析:

变量str表示查找的环境,定义一个变量pos表示目标字符串在环境中的位置,定义一个数组变量res表示目标字符串在环境中出现位置的集合;

如果环境中有该字符则开始循环,每一次循环,将找到的目标字符位置后插入到res位置集合数组中,同时,更新当前找目标字符的位置,并且从已找到的目标字符的下一个开始查找;

最终,就能得到目标字符在环境中所有出现的位置,也可以得到出现的次数;

拓展:

如何利用indexOf() 和 lastIndexOf()判断数组中某个元素是否重复,重复了几次?

思路解析:

方法一:将数组使用join(',')转为字符串后,就可以利用上述解法求得结果;

方法二:利用indeOf()从前往后查找,lastIndexOf()从后往前找的特性,如果两个值相等并且都不等于-1,则:数组中不存在重复的目标元素;

此文主要讲述字符串方法判重,其他方法列在后面,但不进行赘述。

方法三:先排序,再比较相邻值是否相等;

方法四:使用Set()方法,转为Set后,长度发生变化,则存在重复元素,但是,无法判定指定元素重复;

方法n……