이전 글 "js는 주어진 하위 문자열이 존재하는지 어떻게 알 수 있습니까?"에서는 문자열에서 해당 하위 문자열이 처음 또는 마지막으로 나타나는 위치를 구하는 방법을 소개했습니다. 이번에는 난이도를 높이고 문자열에서 하위 문자열의 모든 항목을 가져오는 방법을 알아봅니다.
이전 기사에서 indexOf() 및 lastIndexOf() 함수를 사용하여 하위 문자열의 첫 번째 발생 위치와 마지막 발생 위치를 얻을 수 있다는 것을 배웠습니다. 하위 문자열을 찾을 수 없으면 -1이 반환됩니다.
이 두 함수 모두 선택적인 두 번째 매개변수인 start
를 받을 수 있습니다. 값은 검색을 시작할 문자열의 위치를 나타내는 정수만 가능합니다. /코드> ~ 길이-1
. lastIndexOf() start 매개변수를 지정하면 문자열의 지정된 위치에서 뒤에서 앞으로 검색합니다. start
,值只能是一个整数,表示从字符串中的哪个位置开始搜索,取值范围是 0
~ length-1
。lastIndexOf()如果指定了start参数,则在一个字符串中的指定位置从后向前搜索。
利用这个可选的第二个参数start和循环语句,我们就可以计算给定子串(包含一个或多个字符)的全部出现位置。
首先看看使用indexOf()是怎么统计给定字符在字符串的所有出现位置
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.indexOf("e"); while(pos > -1){ positions.push(pos); //将出现位置赋给数组 pos = stringValue.indexOf("e",pos + 1); //从给定字符出现位置的后一位开始查找 } console.log(positions);//"3,24,32,35,52"
分析:先使用indexOf("e")
获取第一次出现位置并赋值给变量pos;然后使用while语句通过循环调用indexOf(),不断将查找起始位置设置为“pos + 1
”,从给定字符出现位置pos的后一位开始查找,获取下一个出现位置;直到查找不到,返回-1结束。因此输出结果为:
可以看出,给定字符“e
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.lastIndexOf("e"); while(pos > -1){ positions.push(pos); pos = stringValue.lastIndexOf("e",pos - 1); } console.log(positions);//"3,24,32,35,52"
indexOf("e")
를 사용하여 첫 번째 발생을 가져오고 할당합니다. 값 pos; 변수를 지정한 다음 while 문을 사용하여 루프를 통해 indexOf()를 호출하고 검색 시작 위치를 "pos + 1
"로 지속적으로 설정하고 마지막 숫자부터 검색을 시작합니다. 주어진 문자 위치 pos, 찾을 수 없을 때까지 다음 발생 위치를 가져오며, -1이 반환됩니다. 따라서 출력 결과는 다음과 같습니다.
문자열 stringValue에 주어진 문자 "e
"가 5번 나타나는 것을 알 수 있습니다. 문자열 위치가 1이 아닌 0에서 시작하므로 발생 위치는 각각 3, 24입니다. , 32, 35, 52.
그런 다음 lastIndexOf()를 사용하여 문자열에서 특정 문자의 모든 발생 횟수를 계산하는 방법을 살펴보겠습니다.
rrreee분석: lastIndexOf()를 사용하여 모든 발생 횟수를 얻는 것은 실제로 indexOf()를 사용하는 것과 유사하지만 lastIndexOf ( )는 마지막으로 나타나는 위치를 반환하므로 루프를 돌릴 때마다 검색 시작 위치를 "pos - 1"로 설정해야 합니다. 출력 결과를 보면
🎜🎜🎜🎜 문자열 stringValue에서 얻은 주어진 문자 "e"의 발생 위치가 모두 역순으로 되어 있으며 순서는 52, 35, 32, 24, 3. 🎜🎜그렇습니다. 필요한 경우 다음 내용을 읽어보세요. 🎜javascript 고급 튜토리얼🎜🎜위 내용은 JS 문자열 학습: 주어진 문자의 모든 발생 위치를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!