【问题标题】:get first word in java script websockets在 javascript websockets 中获取第一个单词
【发布时间】:2014-10-13 13:20:12
【问题描述】:

我目前在 java 脚本中使用 websockets,并希望对从 websocket 另一端收到的消息进行一些字符串操作。我想去掉消息中除第一个单词之外的所有字符。例如,如果我收到消息lets go to the party,我想将字符串操作为lets。我在想我会遍历我的索引的字符串索引,直到我遇到第一个空格。但我不确定 javascript 中的语法。这听起来是对的还是有更好的方法来做到这一点?对不起,如果这是微不足道的,我对 JavaScript 还是很陌生。

【问题讨论】:

    标签: javascript string websocket substring


    【解决方案1】:

    简单:

    var theMessage = 'Hello world!';
    var theFirstWord = theMessage.split(' ')[0]; // 'Hello'
    

    【讨论】:

      【解决方案2】:

      一种更保守的方法,不需要创建字符串数组,也不需要总是遍历整个字符串。

      function getNthWord(input,wordNumber){
      
          if(!input || !input.length)
              throw new Exception("No input");
          if(!wordNumber || wordNumber <0)
              throw new Exception ("Word number missing");
      
          var wordStart=0;
          for(var i=0;i<input.length;i++){
              var c = input[i];
              if(c==' '){
                  wordNumber--;
                  if(wordNumber==0)
                      return input.substring(wordStart,i);
                  else
                      wordStart=i+1;
              }
          }
          return input.substring(wordStart,input.length);
      }
      

      http://jsfiddle.net/vtortola/7bf2mfag/

      我会说它在O(n) 时间和O(1) 空间中运行,尽管如果wordNumber 参数很小,它可能接近O(1) 时间?

      另一方面,使用 split 总是 O(n) 时间一个空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        相关资源
        最近更新 更多