本文适合有Java基础的人
Kotlin语法特点
相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获
主函数
kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之前的java那般,还要定义个类,写上main
方法
fun main(args: Array<String>) {
println("hello world")
}
基本数据类型
这是说是基本数据类型,其实下面的这些都是kotlin封装好的类,就是相当于Java中的Integer,FLoat等包装类,数值会自动包装。
这样的好处就是,数值是一个对象,可以保证不会出现空指针。
类型 | 位宽度 |
---|---|
Double | 64 |
Float | 32 |
Long | 64 |
Int | 32 |
Short | 16 |
Byte | 8 |
注意,kotlin中的字符类型Char不属于基本数据类型
由于是对象,所以比较得比较内容,kotlin中封装了==
和===
两个运算符供我们比较不同的内容和对象地址
===
表示比较对象地址,两个 ==
表示比较两个值(内容)大小
类型转换:
上面的基本数据类型都有下面的方法,负责类型转换
- toByte(): Byte
- toShort(): Short
- toInt(): Int
- toLong(): Long
- toFloat(): Float
- toDouble(): Double
- toChar(): Char
//显示转换
val num: Byte =1
val num1 = num.toInt
变量声明
两个关键字:
val
声明一个只读常量var
声明一个变量
val
相当于使用了java中的final
关键字修饰变量(声明常量)
var
就是和之前声明
//声明一个整型常量num,数值为12,之后无法对num进行赋值操作
val num: Int = 12
//kotlin的自动判断类型特性,上面的式子也可以这样写
val num = 12
//声明一个常量,赋值过一次之后,无法再次对常量进行赋值
val num: Int
num = 12
//kotlin的基本数据类型变量,还可以加上“_”来便于阅读,不影响数值
//下面的num还是一个Int类型的数据
val num = 1_000_000
//小数也可以加上“_”
val num = 1.02_120
字符串String
普通用法
//和java一样,字符串里可以包含转义字符
val str = "hello world\n"
println(str)
特殊用法
//里面的\n也会打印出来
val str = """hello world\n"""
println(str)
//去除前面的“|”
val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()
//去除前面的“>”
val text = """
>Tell me and I forget.
>Teach me and I remember.
>Involve me and I learn.
>(Benjamin Franklin)
""".trimMargin(">")
字符串模板:
$
开头,后面可接一个变量,或者是用花括号,里面写一个表达式
val num = 5
val text = "i = $num"//输出“i=5”
val text = "the length = ${arrays.length}"
//显示$,$不支持转义
val price = "${'$'}9.99"
println(price)
属性
lastIndex(最后的下标值),length
常用方法
以下加粗的方法都是kotlin中String新增加的方法
方法 | 描述 |
---|---|
String [index] | 取String的指定下标的元素 |
String first() | 取第一个元素 |
String last() | 取最后一个元素 |
indexOf | |
indexLastOf | |
String plus(text) | 和“+”效果一样,连接字符串 |
Boolean equals(text[,ignoreCase]) | 第二个参数不写,相当于之前说的“==”比较内容,第二个参数为true,则忽略内容大小写就行比较 |
String substring(startIndex[,endIndex]) | |
String substringBefore() | 截取第一个出现的字符串前面的字符串内容 |
String substringAfter() | 截取第一个出现的字符串后面的字符串内容 |
String substringBeforeLast() | 截取最后一个出现的字符串前面面的字符串内容 |
String substringAfterLast() | 截取最后一个出现的字符串后面的字符串内容 |
replace() | 替换 |
replaceFirst() | 替换第一个出现的字符串 |
replaceBefore() | 替换第一个出现的字符串前面的内容 |
replaceAfter() | 替换第一个出现的字符串后面的内容 |
replaceBeforeLast() | 替换最后一个出现的字符串前面的内容 |
replaceAfterLast() | 替换最后一个出现的字符串后面的内容 |
spilt() | |
Boolean isBlank() | 字符串是否全是空格 |
Boolean isEmpty() | 字符串长度是否为0,为0返回true |
String reversed() | 字符串反转 |
String startsWith() | |
String endsWith() | |
String trim() | 清除空格 |
String drop(int) | 删除头部的几个元素并返回 |
String dropLast(int) | 删除末尾的几个元素并返回 |
常用方法例子
replaceFirst()等:
val s = "this is starsone"
//替换第一个is之前的内容
println(s.replaceBefore("is", "are"))//输出为areis is starsone
//替换第一个is之后的内容
println(s.replaceAfter("is", "are"))//输出为thisare
//替换最后一个is之前的内容
println(s.replaceBeforeLast("is", "are"))//输出为areis starsone
//替换最后一个is之后的内容
println(s.replaceAfterLast("is", "are"))//输出为this isare
isBlank和isEmpty:
val text = " "
println(text.isBlank())//输出为true
println(text.isEmpty())//输出为fasle
drop和dropLast:
val text = "hello"
println(text.drop(2))//输出为llo
println(text.dropLast(2))//输出为hel
substringBefore等:
val text = "this is starsone"
//截取第一个is之前的内容
println(text.substringBefore("is"))
//截取最后一个is之前的内容
println(text.substringBeforeLast("is"))//注意,这里还包括空格
//截取第一个出现的is后面的内容
println(text.substringAfter("is"))
//截取最后一个出现的is后面的内容
println(text.substringAfterLast("is"))
参考链接 关于字符串(String)常用操作汇总
kotlin text(有关于string的各种方法介绍)
kotlin api文档
菜鸟教程 kotlin基本类型