当前位置:网站首页>[kotlin] the third day
[kotlin] the third day
2022-07-04 23:22:00 【No. 101 of the top 100 most handsome faces in the Asia Pacific 】
Here is the reference
️ Author: intellectuals
️ Personal blog : Old nine CSDN Blog
Personal famous saying : Uncontrollable things Optimistic face
Series column :
Here is the reference
List of articles
- Nullability characteristics (?)
- Security call operators
- Use let Security call for
- Non empty assertion operators (!!)
- Use if Judge null value
- Null merge operator
- Exception handling and custom exception
- Prerequisite function
- substring function
- split operation
- replace Complete encryption and decryption operation
- == and === Comparison operation
Nullability characteristics (?)
fun main() {
var name:String = "lmp"
// This default is a non nullable type
//name = null
println(name)
// When making a statement : Specify as nullable type ( Type followed by a question mark )
var name2 : String ?
name2 = null
println(name2)
}
Security call operators
fun main() {
var name :String? = "zhangsan"
name = null
// Change the first letter to capital
// If name yes null, The code after the question mark is not executed , No null pointer exception will be thrown
val r = name?.capitalize()
println(r)
}
Use let Security call for
package com.lmp.s1
fun main() {
var name:String? = null
// var name = "lmp"
name = ""
var r = name?.let {
//it == name In itself
// If name It's empty , Do not execute after the question mark
if(it.isBlank())// If name yes ”“( No content )
{
"default"
}else{
"{
$it}"
}
}
println(r)
}
Non empty assertion operators (!!)
fun main() {
var name :String? = null
//!! Assertion
// No matter name Is it right? null, All implemented
var r = name!!.capitalize()
println(r)
}
Use if Judge null value
fun main() {
var name:String? = null
if(name != null){
var r = name.capitalize()
println(r)
}else{
println("name is null")
}
}
Null merge operator
fun main() {
var info : String ? = " Bruce Lee "
info = null
//?: If the front one is empty , Just output the following things
//xxx ?: " So you are null" If xx be equal to null, Will execute ?: The back area
println(info ?: " So you are null" )
//let function + Null merge operator
println(info ?.let{
"【$it】"} ?:" So you are null")
}
Exception handling and custom exception
fun main() {
try{
var info :String ?= null
checkException(info)
println(info!!.length)
}catch(e:Exception){
println("$e")
}
}
fun checkException(info: String?) {
info ?: throw CustomException()
}
class CustomException : IllegalArgumentException(" Your code is too loose ")
Prerequisite function
fun main() {
val value1 :String ?= null
val value2 :Boolean = false
// Throw abnormal function
//checkNotNull(value1)
// Throw abnormal function
//requireNotNull(value1)
// by false And throw exceptions
require(value2)
}
substring function
const val INFO = "lmp is Success Result"
fun main() {
val indexOf = INFO.indexOf("i")
println(INFO.substring(0, indexOf))
println(INFO.substring(0 until indexOf))
}
split operation
fun main() {
val jsonTest = "Derry,lmp"
val list = jsonTest.split(",")
// Deconstruction operations
val (v1,v2) = list
println("$v1.$v2")
}
replace Complete encryption and decryption operation
fun main() {
val sourcePwd = "lmp"
println(" The original code is $sourcePwd")
// Encryption operation : Is to replace characters with numbers
val newPwd = sourcePwd.replace(Regex("[lm]")){
when(it.value){
"l" -> "9"
"m" -> "8"
"p" -> "7"
else->it.value
}
}
println(" The encrypted password is $newPwd")
// Decryption operation
val sourcePwdNew = newPwd.replace(Regex("[987]")){
when(it.value) {
"9" -> "l"
"8" -> "m"
"7" -> "p"
else -> it.value
}
}
println(" The decrypted password is $sourcePwdNew")
}
== and === Comparison operation
fun main() {
//== value Comparison of contents amount to java Of equals
//=== Comparison of references
val name1 = "lmp"
val name2 = "lmp"
val name3 = "ww"
println(name1.equals(name2))
println(name1 == name2)
println(name1 === name2) // true, Because it refers to the string constant pool
println(name1 == name3)
val name4 = "lmp".capitalize()
println(name1 == name4)
println(name1 === name4)
}
————————————————————————
It's not easy to code words , Everyone's support is my driving force to stick to it
Copyright notice : This paper is about CSDN Blogger 「 The top 100 most handsome faces in the Asia Pacific region 101 name 」 The original article of
边栏推荐
- ScriptableObject
- The difference between cout/cerr/clog
- Pict generate orthogonal test cases tutorial
- MariaDB's Galera cluster application scenario -- multi master and multi active databases
- 可观测|时序数据降采样在Prometheus实践复盘
- QT personal learning summary
- 【爬虫】数据提取之JSONpath
- The solution to the lack of pcntl extension under MAMP, fatal error: call to undefined function pcntl_ signal()
- MySQL数据库备份与恢复--mysqldump命令
- [crawler] jsonpath for data extraction
猜你喜欢
The difference between cout/cerr/clog
一次edu证书站的挖掘
The difference between debug and release
A complete tutorial for getting started with redis: getting to know redis for the first time
CTF競賽題解之stm32逆向入門
LabVIEW中比较两个VI
qt绘制网络拓补图(连接数据库,递归函数,无限绘制,可拖动节点)
The initial trial is the cross device model upgrade version of Ruijie switch (taking rg-s2952g-e as an example)
Font design symbol combination multifunctional wechat applet source code
The initial arrangement of particles in SPH (solved by two pictures)
随机推荐
Font design symbol combination multifunctional wechat applet source code
Redis introduction complete tutorial: detailed explanation of ordered collection
VIM editor knowledge summary
Why does infographic help your SEO
[JS] - [sort related] - Notes
Object detection based on OpenCV haarcascades
[crawler] XPath for data extraction
colResizable. JS auto adjust table width plug-in
The initial arrangement of particles in SPH (solved by two pictures)
香港珠宝大亨,22亿“抄底”佐丹奴
Servlet+JDBC+MySQL简单web练习
[ODX studio edit PDX] -0.3- how to delete / modify inherited elements in variant variants
Galera cluster of MariaDB - dual active and dual active installation settings
初试为锐捷交换机跨设备型号升级版本(以RG-S2952G-E为例)
Solve the problem that the virtual machine cannot be remotely connected through SSH service
PICT 生成正交测试用例教程
Pagoda 7.9.2 pagoda control panel bypasses mobile phone binding authentication bypasses official authentication
Qt加法计算器(简单案例)
机器学习在房屋价格预测上的应用
Docker镜像的缓存特性和Dockerfile