Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScript-文字のk番目の外観を置き換える文字列関数の記述


たとえば、3つの引数を取るString.prototype関数を作成する必要があるとします。

  • 最初の引数は、部分文字列を検索する必要がある文字列です
  • 2番目の引数は文字列であり、その文字列の出現は削除されます
  • 3番目の引数は、文字列から削除される部分文字列のn番目の出現回数を示す数値です。

文字列からのsubStrの削除が成功した場合、関数は新しい文字列を返す必要があります。それ以外の場合は、すべての場合に-1を返す必要があります。

以下はコードです-

const str = 'jkdsttjkdsre';
const subStr = 'jk';
const num = 2;
removeStr = function(subStr, num){
   if(!this.includes(subStr)){
      return -1;
   }
   let start = 0, end = subStr.length;
   let occurences = 0;
   for(; ;end < this.length){
      if(this.substring(start, end) === subStr){
         occurences++;
      };
      if(occurences === num){
         return this.substring(0, start) + this.substring(end,this.length);
      };
      end++;
      start++;
   }
}
String.prototype.removeStr = removeStr;
console.log(str.removeStr(subStr, num));

この関数は最初にチェックします。subStrが1つも出現しない場合は、終了して-1を返す必要があります

次に、スライディングウィンドウアルゴリズムを使用して、文字列にsubStrの発生数を記録します(ウィンドウのサイズはsubStrの長さに等しい)

最初は左端のウィンドウから開始し、ウィンドウの終わりが元の文字列の終わりに達するまでウィンドウをスライドさせ続けます。この方法で、発生数が必要な発生数と等しい場合、文字列からその発生をトリミングし、取得した新しい文字列を返します。

文字列全体を反復処理する場合は、文字列内にsubStrが十分に出現していないことを意味します。その場合は、-1を返し、関数を終了する必要があります。

最後に、removeStrプロパティをString.prototypeに追加して、文字列関数として呼び出すことができるようにします。

出力

これにより、コンソールに次の出力が生成されます-

jkdsttdsre

  1. JavaScriptを使用して、別の文字列内の文字の最長連続出現を検索する

    問題 最初の引数として文字列を取り、2番目の引数として単一の文字を受け取るJavaScript関数を作成する必要があります。 この関数は、文字列内の文字の最長連続出現をカウントして返す必要があります。 例 以下はコードです- const str = 'abcdaaadse'; const char = 'a'; const countChars = (str = '', char = '') => {    const arr = str.split('');   &nbs

  2. C ++ STLのbasic_stringc_str関数?

    null文字を使用して終了する文字の配列へのポインタを返すbasic_stringc_str関数。これは、ヌル文字で終了する文字列の値を持つ組み込みメソッドです。 C++でc_str関数を定義する構文- const Char ptr* c_str() const 機能について これは、c++STLライブラリの組み込みメソッドです。メソッドにパラメーターを渡すことはできません。 charポインタを返します。このポインタは、NULLで終了する文字配列を指します。 例 #include <bits/stdc++.h> #include <string> using nam