获取java脚本websockets中的第一个单词



我目前正在java脚本中使用websocket,并希望对从websocket的另一端收到的消息进行一些字符串操作。除了信息中的第一个单词外,我想去掉所有字符。例如,如果我得到消息lets go to the party,我想将字符串操作为lets。我想我会遍历字符串索引,直到我找到第一个空白。但我不确定javascript中的语法。这听起来正确吗?或者有更好的方法吗?很抱歉,如果这是琐碎的话,我对JavaScript还很陌生。

简单:

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

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

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)时间?

另一方面,使用分割总是O(n)的时间和空间。

相关内容

  • 没有找到相关文章

最新更新