首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较scala中的两个字符串?

如何比较scala中的两个字符串?
EN

Stack Overflow用户
提问于 2014-10-10 10:37:46
回答 2查看 37.9K关注 0票数 35

我想比较scala中的两个字符串。例如,

我的弦乐是:

代码语言:javascript
复制
scala java
scala java c++
scala c++

我想比较一下字符串

包含每个字符串的“scala c++

结果应该是,

代码语言:javascript
复制
scala c++ = scala java   // false
scala c++ = scala java c++  // false
scala c++ = scala c++   // true
EN

回答 2

Stack Overflow用户

发布于 2014-10-10 10:52:17

在Scala中,您可以使用==来表示相等

代码语言:javascript
复制
scala> "scala c++" == "scala java"
res0: Boolean = false
scala> "scala c++" == "scala java c++"
res1: Boolean = false
scala> "scala c++" == "scala c++"
res2: Boolean = true

==方法在AnyRef类中定义。因为这些方法首先检查空值,然后调用第一个对象上的equals方法来查看这两个对象是否相等,所以您不必执行特殊的空检查;

代码语言:javascript
复制
"test" == null
res0: Boolean = false

Scala getting started guidestrings

来自"An Overview of the Scala Programming Language Second Edition";

“值之间的相等操作==设计为对于类型的表示形式是透明的。对于值类型,它是自然的(数值或布尔值)相等。对于引用类型,java.lang.Object.将==视为等于方法的别名。该方法最初被定义为引用相等,但在子类中被重写,以实现这些子类的自然相等概念。例如,值类型的装箱版本将实现一个相等的方法,该方法比较装箱值。相比之下,在Java中,==总是指引用类型上的引用相等。虽然这是一个更有效的实现,但它也引入了一个严重的一致性问题,因为盒装版本的等值可能不再等同于==。有些情况下需要引用相等,而不是用户支持的相等。一个例子是杂凑,在那里,专一是最重要的。对于这些情况,类AnyRef定义了一个额外的eq方法,该方法不能被重写,并且实现为引用相等(也就是说,对于引用类型,它的行为类似于Java中的== )。

票数 53
EN

Stack Overflow用户

发布于 2020-06-04 17:01:11

若要添加等式比较,可以将!=用于不等式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26297473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档