代码之家  ›  专栏  ›  技术社区  ›  joe

合并字符串

  •  0
  • joe  · 技术社区  · 15 年前

    你好, 在Java脚本中,

    var a=“苹果橙芒果” var b=“葡萄、青苹果”

    var c=a+b//与2个变量合并

    变量C的值应该是“苹果橙芒果葡萄干杯”,复制品应该去掉。

    谢谢, 切尔斯

    4 回复  |  直到 13 年前
        1
  •  1
  •   Tim Cooper    13 年前

    下面是一个蛮力算法:

    var a;
    var b; // inputs
    
    var words = split(a+b);
    var map = {};
    var output;
    for( index in words ) {
        if( map[ words[index] ]!=undefined ) continue;
        map[ words[index] ] = true;
        output += (words[index] + '-');
    }
    output[output.length-1]=' '; // remove the last '-'
    

    这个 map 用作哈希表。

    就是这样!

        2
  •  2
  •   John T    15 年前

    组合字符串后,您将希望使用分隔符拆分它(您可以稍后再添加这些分隔符)。

    例子:

    var a ="apple-orange-mango" 
    var b ="grapes-cheery-apple"
    var c = a + "-" + b
    var Splitted = c.split("-");
    

    splited变量现在包含一个数组,例如[苹果、橘子、芒果、葡萄、樱桃、苹果]

    然后你可以使用许多 duplicate removing algorithms 删除重复项。然后,您可以简单地将分隔符添加回:

    result = Splitted.join("-");
    
        3
  •  1
  •   Eineki    15 年前

    我不知道这是不是家庭作业。

    另外,您可以使用string对象的split方法拆分字符串,如a和b。 在你的情况下:

    firstArray=a.split("-");
    secondArray=b.split("-");
    

    删除副本由您决定…

        4
  •  1
  •   Jeroen Versteeg    15 年前

    在您的简单示例中,只需使用var c=a+“-”+b; 如果要删除重复项,请将A和B拆分为数组,然后将它们组合,如下所示:

    var avalues = a.split("-");
    var bvalues = b.split("-");
    var combined = avalues.concat( bvalues );
    // now loop over combined and remove duplicates