字符串比较:

字符串的比较也是实际中比较常见的,下面来看下它的比较跟java中有啥不同,下面走起!

如我们所预期,其结果:

下面再来:

如果是java,结果肯定是为false,因为"=="是比较的是地址,但是!!见证奇迹:

所以在kotlin中的字符串的==其实跟equals效果一样,下面改成equals:

结果就不打印了,肯定是true。下面再来换成英文试试:

这个没啥好说的,下面再来改:

也好理解,但是!!如果想不区分大小写,在kotlin中是如何写的呢?

看结果:

也就是说在kotlin中对equals方法进行了重载,点击源码看下该重载的方法:

空值处理:

对于空值的处理在实际编码中也是非常重要的,所以看下在kotlin中是如何对它进行处理的:

编译运行:

接着来传一个null值试一下:

看一下提示是:

呃~~也就是说!

这点比java要强呀,在实际项目中上线之后出现空指针异常比比皆是,基本上每个程序员都无一幸免,但是想一下,有了kotlin这种机制直接就把空指针的可能性在编译期就可扼杀了,是不是kotlin要比java人性呢?哈哈,先不过多对新语言做评论,因为还是小白还木有发言权,回到正题,那如果要能将参数支持传null该如何处理呢?

好奇怪的语法,这时立马报错信息就没了,下面运行看下结果 :

所以在刚才查看equals源码,也能看到它的身影:

when表达式:

直接上代码来理解,先不对它做过多解释:

看输出结果:

其实跟java中的swich功能一样,但是!!!是不是觉得kotlin写起来更加清爽!!

下面用这个表达式来改造一下之前写过的DEMO,如博客:http://www.cnblogs.com/webor2006/p/7684357.html,其中有个写日志的DEMO:

其对应的代码如下:

这时对它进行一下升级,给其中的数字全转换成中文:

那正好可以用这个when表达式来改写,如下:

编译运行:

kotlin字符串比较&空值处理&when表达式的更多相关文章

  1. [Swift通天遁地]五、高级扩展-(14)扩展String快速计算字符串中的各种数学表达式

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. Kotlin入门(8)空值的判断与处理

    上一篇文章介绍了如何对循环语句进行操作,末尾还演示了发现空串时直接继续下一循环,只是在初始化字符串数组时使用了“val poem2Array:Array<String?> = ***”,该 ...

  3. Kotlin语法(函数和lambda表达式)

    三.函数和lambda表达式 1. 函数声明 fun double(x: Int): Int { } 函数参数是用 Pascal 符号定义的 name:type.参数之间用逗号隔开,每个参数必须指明类 ...

  4. python学习:注释、获取用户输入、字符串拼接、运算符、表达式

    注释 #为单行注释'''三个单引号(或者"""三个双引号)为多行注释,例如'''被注释的内容''' '''三个单引号还可以起到多行打印的功能. #ctrl+? 选中的多行 ...

  5. kotlin字符串模板&条件控制

    字符串模版: 小时候都有要求记日记的习惯,下面是一小学生记的日记: 很漂亮的流水账,那细分析一下这些文件其实大体都类似,只有几个不同点: 其实就是地点变了,那对于这种有规律的文字可以采用kotlin的 ...

  6. kotlin字符串和数字之间的转换和人机交互

    继续基础学习~ 字符串和数字之间的转换 那如何转换呢,其实很简单: 编译木有报错,但是运行: 所以这里了解下. 人机交互 看这标题貌似高端的,其实也就是程序可以接受键盘的输入啦,下面开始: 首先提示用 ...

  7. 递推,动态规划(DP),字符串处理,最佳加法表达式

    看了一些资料,竟然发现连百度文库也有错误的地方,在这里吐槽一下题目大意:http://wenku.baidu.com/link?url=DrUNNm19IqpPNZjKPX4Jg6shJiK_Nho6 ...

  8. String字符串排序1.8 lamda表达式以及1.7自定义排序

    // 1.8 public class text { public static void main(String[] args) { String s1 = "哈哈哈11,呵呵呵22,嘿嘿 ...

  9. shell字符串的空值检查

随机推荐

  1. PJzhang:ms17-010永恒之蓝漏洞在windows 2008R2中的复现

    猫宁!!! 参考: https://www.anquanke.com/post/id/86245 https://xz.aliyun.com/t/2536 https://www.cnblogs.co ...

  2. 百度之星2019第一场1002 Game

    思路: 离散化之后dp,dp[i][j]表示完成前i个任务并且处在第j个点所需要的最小代价. 实现: #include <bits/stdc++.h> using namespace st ...

  3. 鼠标拖拉div宽度

    先看效果 先进入页面 当鼠标停留在中间div时,鼠标变成双箭头 点击拖拉 往右边拉 往最左边拉 代码 <!DOCTYPE html> <html> <head> & ...

  4. fastadmin添加定时任务

    安装定时任务插件后 需要在crontab -e 中添加一条记录 * * * * * /usr/bin/php /var/www/yoursitepath/public/index.php /addon ...

  5. C语言课程设计

    目录 实现目的 游戏玩法介绍 实现流程与作品架构 任务列表及贡献度 总结感想 作品源码与仓库地址(附页) 资料引用与出处(附页) 实现目的 2048,作为一款极其经典的游戏,从发行到现在,已经有了极多 ...

  6. 双端队列 【deque】

    题目链接:https://ac.nowcoder.com/acm/contest/1071/D 还是第一次简单运用双端队列.顾名思义:队列的头尾都可以进行插入跟删除操作. 存在于头文件 deque 中 ...

  7. Python基础总结之第七天开始【总结字符串、列表、元组的常用方法】(新手可相互督促)

    前面的笔记说,python中的一切数据类型都是对象 我们在细化下就是:对象可由两部分组成:对象数据和对象方法 针对不同类型的数据对象,有不同的操作对象的方法. 那么我们开始看下字符串对象的常用方法: ...

  8. 《MIT 6.828 Lab 1 Exercise 11》实验报告

    本实验的网站链接:MIT 6.828 Lab 1 Exercise 11. 题目 The above exercise should give you the information you need ...

  9. 自然语言处理工具HanLP-基于层叠HMM地名识别

    本篇接上一篇内容<HanLP-基于HMM-Viterbi的人名识别原理介绍>介绍一下层叠隐马的原理. 首先说一下上一篇介绍的人名识别效果对比: 1. 只有Jieba识别出的人名 准确率极低 ...

  10. Kernel--试题

    1. 内核堆栈区别: 1.栈自动分配回收,函数里面声明的变量:2.堆:malloc kmalloc申请的空间,需要自己释放 https://blog.csdn.net/tainjau/article/ ...