文档章节

Scala学习之字符串篇(一):字符串的比较

阿拉德大陆的魔法师
 阿拉德大陆的魔法师
发布于 2016/12/05 11:33
字数 342
阅读 1862
收藏 1

在Scala中你只需要使用==就可以判断字符串相等,而不需要像Java一样需要使用的equals方法来判断。

scala> val s1 = "hello"
s1: String = hello

scala> val s2 = "hello"
s2: String = hello

scala> val s3 = "h" + "ello"
s3: String = hello

scala> s1 == s2
res4: Boolean = true

scala> s1 == s3
res5: Boolean = true

使用==判断字符串相等的好处是,可以避免空指针异常。即==左边的字符串是空,也可以正常判断。

scala> val s4 = null
s4: Null = null

scala> s4 == s3
res6: Boolean = false

scala> s3 == s4
res7: Boolean = false

忽略大小写来比较两个字符串是否一致,有两个方法:一个是把两个字符串都转化为大写或者小写再比较,另一个是直接使用equalsIgnoreCase方法。

scala> val s1 = "hello"
s1: String = hello

scala> val s2 = "Hello"
s2: String = Hello

scala> s1.toUpperCase == s2.toUpperCase
res8: Boolean = true

scala> s1.equalsIgnoreCase(s2)
res9: Boolean = true

需要注意的是,使用以上两个方法的时候,"."号左边的字符串不能为空。

scala> val s4: String = null
s4: String = null

scala> s4.equalsIgnoreCase(s2)
java.lang.NullPointerException
  ... 32 elided

scala> s4.toUpperCase == s2.toUpperCase
java.lang.NullPointerException
  ... 32 elided

Scala中的==定义在AnyRef类中,在Scala API文档中的解释为。x == that:首先判断x是否为空,如果x为空然后判断that是否为空,如果x不为空那么调用x.equals(that)来判断是否相等。

© 著作权归作者所有

阿拉德大陆的魔法师
粉丝 27
博文 91
码字总数 83019
作品 0
西城
程序员
私信 提问
Scala学习目录

字符串篇 1.1 字符串的比较 1.2 使用多行字符串 1.3 字符串的切分 1.4 插值函数 1.5 逐字符处理字符串 1.6 使用正则表达式 1.7 访问字符串特定位置的字符 1.8 使用隐式方法来扩展字符串类 2....

阿拉德大陆的魔法师
2016/04/20
367
0
Scala学习之字符串篇(四):插值函数

在Scala中使用字符串插值函数,需要再字符串前加上字符"s",然后再字符串中的每个插值变量前加上“$”符号。 除了可以使用变量外还可以在字符串插值中使用表达式代码。 还可以在插值表达式中...

阿拉德大陆的魔法师
2016/12/05
242
0
Scala入门之工具篇

我初次接触Scala时,由于对Scala相关的工具不够熟悉,学习的效率低下。所以本文主要介绍Scala编程所必备的工具。一般而言,我们接触一门编程语言,都需要接触这门语言的编译器、REPL、构建工...

碎镜
2017/11/29
0
0
【scala初学】常用类- 基本类型

scala完全集成了java的八个基本类型 1. String var s = "a" 连接字符串 s = s.concat("b")println(s); 或者更简单 s = s+"c"println(s); 以及scala语法 s=s.+("d")s = s+("e") 截取字符串 s=......

yjplxq
2014/06/03
0
0
基本类型和操作之理解Symbol类型

相信很多人和我一样,在刚接触scala时,会觉得Symbol类型很奇怪,既然Scala中字符串都是不可变的,那么Symbol类型到底有什么作用呢?简单来说,相比较于String类型,Symbol类型有两个比较明显...

柳哥
2014/06/05
683
0

没有更多内容

加载失败,请刷新页面

加载更多

Centos7 安装zabbix-agent

rpm -i https://repo.zabbix.com/zabbix/4.2/rhel/6/x86_64/zabbix-release-4.2-2.el6.noarch.rpm 可以到https://repo.zabbix.com/zabbix找到对应的版本 yum install zabbix-agent -y 出现E......

abowu
昨天
8
0
文本编辑器GNU nano 4.4 发布

GNU nano 4.4 "Hagelslag" 更新日志: 启动时,光标可以放在第一个或最后一个出现位置 字符串前面带有+/string 或 +?string的字符串。 发生自动硬包装时((--breaklonglines),任何前导引号...

linuxCool
昨天
7
0
你知道字节序吗

字节序 最近在调一个自定义报文的接口时,本来以为挺简单的,发现踩了好几个坑,其中一个比较“刻骨铭心”的问题就是数据的字节序问题。 背景 自定义报文,调用接口,服务端报文解析失败 iO...

杭城小刘
昨天
3
0
设计模式之依赖倒置原则

方法

东风破2019
昨天
6
0
关于如何通过模拟器完成模拟步数提升傻瓜式解决方案(囧)

因为对Android开发不太了解,也没去问朋友所以误打误撞找到的一个提升步数的解决方案,当然只是针对某安APP运动RUN的解决方式吧。 对Android不太了解,所以找了很多的解决方案来看看能不能破...

华山猛男
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部