>  기사  >  웹 프론트엔드  >  JS 문자열 학습: 주어진 문자의 모든 발생 위치를 계산합니다.

JS 문자열 학습: 주어진 문자의 모든 발생 위치를 계산합니다.

青灯夜游
青灯夜游원래의
2021-08-16 17:06:282589검색

이전 글 "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结束。因此输出结果为:

JS 문자열 학습: 주어진 문자의 모든 발생 위치를 계산합니다.

可以看出,给定字符“e

이 선택적인 두 번째 매개변수 start와 루프 문을 사용하면 주어진 하위 문자열(하나 이상의 문자 포함)이 나타나는 모든 항목을 계산할 수 있습니다.

먼저, indexOf()를 사용하여 문자열에서 특정 문자의 모든 발생 횟수를 계산하는 방법을 살펴보겠습니다.

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이 반환됩니다. 따라서 출력 결과는 다음과 같습니다.

JS 문자열 학습: 주어진 문자의 모든 발생 위치를 계산합니다.

JS 문자열 학습: 주어진 문자의 모든 발생 위치를 계산합니다.문자열 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.