当前位置: 首页 > 面试题库 >

在JavaScript中比较字符串的最佳方法?

高宇定
2023-03-14
问题内容

我正在尝试优化在JavaScript中对字符串进行二进制搜索的函数。

二进制搜索要求您知道键是==枢轴还是<枢轴。

但这需要JavaScript中的两个字符串比较,这与同类C语言不同,后者具有strcmp()返回三个值(-1, 0, +1)(小于,等于,大于)的函数。

JavaScript中是否有这样的本机函数可以返回三进制值,以便在二进制搜索的每次迭代中只需要一个比较?


问题答案:

您可以使用该localeCompare()方法。

string_a.localeCompare(string_b);

/* Expected Returns:

 0:  exact match

-1:  string_a < string_b

 1:  string_a > string_b

 */


 类似资料:
  • 问题内容: 我在尝试搜索字符串中的子字符串时遇到问题。该子字符串可能在字符串中也可能不在字符串中。 我知道是否可以完成的两种方法是: 正则表达式 但是,还有其他“优化”方式吗?你会怎么做? Ruby可以提供更好的答案吗?由于我们使用jRuby,因此答案可以是Ruby或Java。 问题答案: 在Ruby中,使用方法: 返回。

  • 问题内容: 在Java中比较两个字符串最快的方法是什么? 有没有比平等更快的东西? 编辑:我不能帮助澄清问题。 我有两个按字母顺序排列且大小完全相同的字符串 示例:abbcee和abcdee 字符串最长为30个字符 问题答案: 我不认为 Sun Oracle还没有最大程度地优化标准。因此,我希望它已经是最快的方法。如果您想了解他们如何实现它,请看一下它的源代码。这是摘录:

  • 我在客户端将一些参数存储在HTML中,然后需要将它们作为整数进行比较。不幸的是,我遇到了一个我无法解释的严重错误。bug似乎是我的JS将参数作为字符串而不是整数读取,导致我的整数比较失败。 我生成了一个错误的小例子,我也无法解释。运行时,以下返回“true”:

  • 我有两个字符串的输入,每个字符串以十进制格式表示一个非负有理数。 给定这两个字符串,我想检查由x表示的数值是否大于由y表示的数值。 这两个值可以非常大,也可以扩展到非常高的精度(即小数点后的许多数字)。 因此,我不能依赖

  • 问题内容: 我需要将字符串的结尾与存储过程中可能结尾的列表进行比较。这将被称为很多,大约有10-15个候选结局。在这一点上,仅代码解决方案比创建专用于此的表更为可取。会是这样的: 我正在寻找速度和可维护性方面的最佳方法。我认识的候选人是 正确,到目前为止,我最喜欢的是,但这意味着我必须对字符串长度进行硬编码,因此容易出错。这也意味着多次剪切源字符串。 像,可能较慢,但较干净 CHARINDEX,因

  • 问题内容: 给我输出: 我不太了解第一行,为什么它会给我带来错误? 如果我在字符串2上添加空格,则此行为false,但如果不添加空格,则为true: 为什么第1行给我假,但第6行为真,但是如果我在string2上添加空格则为假。 谢谢=) 问题答案: 那里发生了几件事。 当您将两个字符串声明为相等的“ Hi”时,java将对其进行优化以引用相同的字符串对象(因此不必将相同的字符串存储两次)。 “