文字列内の単語を数える 質問する

文字列内の単語を数える 質問する

私は次のようにテキスト内の単語数を数えようとしました:

function WordCount(str) {
  var totalSoFar = 0;
  for (var i = 0; i < WordCount.length; i++)
    if (str(i) === " ") { // if a space is found in str
      totalSoFar = +1; // add 1 to total so far
  }
  totalsoFar += 1; // add 1 to totalsoFar to account for extra space since 1 space = 2 words
}

console.log(WordCount("Random String"));

かなりうまくできたと思いますが、記述が間違っていると思います。スペースが含まれているifかどうかをチェックして 1 を追加する部分です。str(i)

編集:

私は (Blender のおかげで) これをはるかに少ないコードで実行できることを発見しました。

function WordCount(str) { 
  return str.split(" ").length;
}

console.log(WordCount("hello world"));

ベストアンサー1

車輪を再発明する前にこれらを試してみてください

からJavaScript を使用して文字列内の単語数をカウントする

function countWords(str) {
  return str.trim().split(/\s+/).length;
}

からhttp://www.mediacollege.com/internet/javascript/text/count-words.html

function countWords(s){
    s = s.replace(/(^\s*)|(\s*$)/gi,"");//exclude  start and end white-space
    s = s.replace(/[ ]{2,}/gi," ");//2 or more space to 1
    s = s.replace(/\n /,"\n"); // exclude newline with a start spacing
    return s.split(' ').filter(function(str){return str!="";}).length;
    //return s.split(' ').filter(String).length; - this can also be used
}

から正規表現を使わずにJavaScriptを使用して文字列内の単語を数える- これが最善のアプローチです

function WordCount(str) {
     return str.split(' ')
            .filter(function(n) { return n != '' })
            .length;
}

著者からのメモ:

このスクリプトを適応させて、好きな方法で単語をカウントできます。重要なのはs.split(' ').length、スペースをカウントすることです。スクリプトは、カウントする前に余分なスペース (ダブルスペースなど) をすべて削除しようとします。テキストに間にスペースのない 2 つの単語が含まれている場合は、それらを 1 つの単語としてカウントします (例: "最初の文 .次の文の開始")。

おすすめ記事