【问题标题】:Which part of strings are different? (JavaScript) [duplicate]字符串的哪一部分不同? (JavaScript)[重复]
【发布时间】:2014-09-07 12:54:38
【问题描述】:

我想知道 JavaScript 中是否有一种方法可以检测字符串的哪一部分使它们彼此不同。

假设我有如下三个字符串:

String1 = "Java1String"
String2 = "Java2String"
String3 = "Java3String"

如果我选择我的第一个字符串作为主要字符串,那么使它与其他字符串不同的部分是 1。

有什么方法可以使用 JavaScript 或 jQuery 找到这部分吗?

【问题讨论】:

  • @SLaks 虽然相关,但我不明白这如何为 OP 提供答案
  • 您是打算向我们展示您编写代码的尝试,还是让我们为您完成工作?您对输入有任何限制吗?他们总是字符串吗?总是一样的长度?总是三个?
  • 您需要寻找“差异”算法。该解决方案与 jQuery 无关。
  • 我的输入总是字符串,没有限制。实际上我正在解析一个大的字符串数据库,这只是我工作的一部分。我只需要确定是否有可能,看看是否有什么东西可以直接为我做这件事。谢谢大家。

标签: javascript jquery string


【解决方案1】:
var String1 = "Java1String",
String2 = "Java2String",
String3 = "Java3String";

var j = 0;

for(var i = 0; i < String1.length; i++){
    if(String1.charAt(i) != String2.charAt(j))
        alert(String1.charAt(i) +"  !=  "+ String2.charAt(j));
        j++;
}

您可以通过this jsfiddle查看此代码的演示。

【讨论】:

  • 您的代码提醒4,这当然不会发生。
  • 我已经更新了代码。现在检查帖子中的链接,它会显示不同的字符。
  • 之前的代码警告了不同字符@chipChocolate.py 的位置
【解决方案2】:
You can compare two strings like this. This will give you the characters which are different.


var String1 = "Java1String",
String2 = "Java2String",
String3 = "Java3String";

var j = 0;

for(var i = 0; i < String1.length; i++){
    if(String1.charAt(i) != String2.charAt(j))
        alert(String1.charAt(i) +"  !=  "+ String2.charAt(j));
        j++;
}

You can check out Demo of this code on this link

http://jsfiddle.net/enL9b3jv/1/

【讨论】:

    【解决方案3】:

    天真的解决方案是将每个字符串转换为数组并遍历数组,比较每个索引处的字符,直到找到不匹配的索引,然后将该索引写入变量。下面是一个可以做到这一点的 Jsbin,但正如 DevIshOne 所说,这里有很多问题需要回答......

    http://jsbin.com/dugovemoxupu/1/edit

    【讨论】:

    • 您无需将 JS 字符串转换为数组即可遍历字符。 "test"[2] 将返回 "s".length 在字符串上工作正常。
    • 更新了 JsBin 以不使用数组,但我看不出这会如何影响答案的质量。
    • 可能是因为您链接到代码而没有发布它?不确定,我不是反对者。
    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 2017-07-03
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    相关资源
    最近更新 更多