JS中查詢一個字串中所有子串的位置
通過迴圈呼叫indexOf()或lastIndexOf()來找到所有匹配的子字串。
上面兩個方法都是從一個字串中搜索給定的子字串,然後返回子字串的位置(如果沒有找到子字串,則返回-1)。這兩個方法的區別在於:indexOf()方法從字串的開頭向後搜尋子字串,而lastIndexOf()方法是從字串的末尾向前搜尋子字串。
這兩個方法都可以接收可選的第二個引數,表示從字串中的那個位置開始搜尋。換句話說,indexOf()會從該引數指定的位置向後搜尋,忽略該位置之前的所有字元;lastIndexOf()類似。
/*
* 查詢一個字串中的所有子串的位置
*/
var str = "I think of other ages that floated upon the stream of life and love and death" ;
var positions = new Array();
function searchSubStr(str,subStr){
var pos = str.indexOf(subStr);
while(pos>-1){
positions.push(pos);
pos = str.indexOf(subStr,pos+1);
}
}
searchSubStr(str,"o");
alert(positions);//8,11,29,37,51,64
這個例子通過不斷增加indexOf()方法開始查詢的位置,遍歷了一個長字串。在迴圈之外,首先找到了”o”在字串中的初始位置;而進入迴圈後,則每次都給indexOf()傳遞上一次的位置加1。這樣就確保了每次新搜尋都從上一次找到的子字串的後面開始。每次搜尋返回的位置被儲存在陣列positions中,以便將來使用。
相關推薦
JS中查詢一個字串中所有子串的位置
通過迴圈呼叫indexOf()或lastIndexOf()來找到所有匹配的子字串。 上面兩個方法都是從一個字串中搜索給定的子字串,然後返回子字串的位置(如果沒有找到子字串,則返回-1)。這兩個方法的區別在於:indexOf()方法從字串的開頭向後搜尋子
JS實現去除一個字串中的所有標點和空格
這是今天做練習的時候碰到的。 有兩種辦法:一是先將要處理的字串分割成陣列,再用filter濾去陣列中的標點和空格(filter對於回撥函式返回true的項會保留在陣列中,返回false的會被濾出陣列),最後再把陣列轉成字串。下面是實現方法: function
查詢一個字串中出現頻率最高的字元
程式碼: let a='hhhhweeowiohhhlbbccdd'; a=a.split(''); // console.log(a instanceof Array); function findRes(){ let r
查詢一個字串中包含有幾個指定字串的數量
public class test{ public static void main(String[] args){ String str = "abcguddcabddgudddgudd"; String s = "gudd"; // 指
【C語言】模擬實現strchr函式.即在一個字串中查詢一個字元第一次出現的位置並返回
//模擬實現strchr函式.即在一個字串中查詢一個字元第一次出現的位置並返回 #include <stdio.h> //#include <string.h> #includ
字串中查詢最長迴文子串完整程式碼
#include <stdio.h> #include <string.h> #include <malloc.h> int Min(int a,int b) { return ((a-b)?b:a); } char* huiw
【c語言】模擬實現strchr函式,功能:在一個字串中查詢一個字元第一次出現的位置,如果沒有出現返回NULL
// 模擬實現strchr函式,功能:在一個字串中查詢一個字元第一次出現的位置,如果沒有出現返回NULL #include <stdio.h> #include <assert.h> char const* my_strchr(char cons
Find All Anagrams in a String給定字串s和非空字串p,找出p中是s中點的所有子串
LeetCode438號問題。 問題描述:給定一個字串s和一個非空字串p,找出p中的所有是s的anagrams字串的子串,返回這些子串的起始索引。 s=”cbaebabacd” p=”abc” 則返回的是[0,6] 位置0 cba,位置6 bac也就是不考
如何查詢一個字串中重複次數最多的字元,返回這個字元的個數和字元
{ string str ="1232143546534135164161"; foreach(char c in str) ...{ Check(c); } char maxChar = Char.MinValue;
【每日一題】查詢一個字串中第一個只出現兩次的字元
題目:查詢一個字串中第一個只出現兩次的字元。比如:“abcdefabcdefabc”中第一個只出現兩次為‘d’,要求時間複雜度為O(N),空間複雜度為O(1) 解決方法:可以使用雜湊表統計每個字元出現的次數。因為字元只有256種可能,所以我們可以申請一個25
一個字串A的子串被定義成從A中順次選出若干個字元構成的串。如A=“cdaad" ,順次選1,3,5個字元就構成子串" cad" ,現給定兩個字串,求它們的最長共公子串。 小王對既是素數又是迴文的
一個字串A的子串被定義成從A中順次選出若干個字元構成的串。如A=“cdaad" ,順次選1,3,5個字元就構成子串" cad" ,現給定兩個字串,求它們的最長共公子串。 小王對既是素數又是迴文的數特
java中輸出一個字串中出現次數最多的字元以及次數
1 先把字串轉化為陣列 .toCharArray 2 定義一個數組count[i] 存取每個字元 以及數量 count[i]++ 3 計算每個字元 以及值 4 取count的最大值 public class MaxString { public sta
在java中判斷一個字串中是否包含某個字元或字串
一、contains方法 java.lang.String.contains() 方法返回true,當且僅當此字串包含指定的char值序列 此方法返回true,如果此字串包含,否則返回false。 public static void main(String[] args
C語言中常用的字串操作(子串分割、替換、去前後空格、遞迴實現字串反轉)
在C語言中,並沒有像java中對字串操作的封裝好的函式,在C語言中,都需要自己根據C語言函式庫來實現常用的字串操作 一、字串的分割,根據子串進行分割 #include<stdio.h>
找出字串的所有子串-Python
給定一個字串,找出其中所有子串,這可能是暴力查找回文的第一步,如:>>> s = 'abc' >>> [s[i:i + x + 1] for x in range(l
python,求解字串的所有子串
網上的一種解法: def cut(s: str): results = [] num = 0 # x + 1 表示子字串長度 for x in range(len(s)): # i 表示偏移量
Python判斷一個字串是否包含子串的幾種方法
1.使用成員操作符 in >>> s='nihao,shijie' >>> t='nihao' >>> result = t in s >
判斷一個字串裡面的子串出現的次數
package day12; public class TextString5 { public static void main(String[] args) { Coun
純JS實現在一個字串b中查詢另一個字串a出現的所有位置,並且不使用字串的方法(遞迴)
問題:判斷字串A在中所有出現字串B中(長度大於1)的索引。不得使用字串方法indexof,substring等 有小夥伴在面試遇到了這個問題,乍一看如果使用使用字串方法indexof,substring,很簡單容易實現,但如果不使用這些方法,怎麼樣才能實現這個需求呢
筆試題:在一個字串中查詢子字串的個數
題目:在一個字串中查詢子字串的個數。 要求:兩個字串之間以空格隔開,前一個為字串,後一個為要查詢的子字串。結果輸出字串中包含的子字串的個數。 例如:輸入:abcdssdfabc abc