1.数值与字符类型
1.数值类型:Double、Float、Long、Int、Short、Byte
例:
var a:Int = 20
var b:Double = 3.14
var c:Float = 2.8f
Kotlin和Java一样,数值都有默认类型,整数默认是Int,浮点型默认是Double
在Java中如果将占用字节数少的变量赋值给占用字节数多的变量会自动转换类型的,但是在Kotlin中不能类型自动转换但是提供了方法:
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()2.字符类型:Char
与java不同,它们不能直接当作数字,但是我们可以显式把字符转换为 Int 数字,例:
fun decimalDigitValue(c: Char): Int {
if (c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt() // 显式转换为数字
}
2.布尔值
布尔用 Boolean 类型表示,它有两个值:true 与 false。
内置的布尔运算有:||,&&,!
3.字符串
kotlin中使用String类来表示字符串,和 Java 一样,String 是不可变的,字符串的元素可以通过索引运算符[i]的方式来进行访问:
var str:String = "hello world"
println(str[0]) // 输出“h”另外常见的就是字符串的拼接了,这个我们可以使用熟知的+号操作符来进行字符串的拼接
str += "welocome to kotlin"字符串模板:
var i = 10
print("i = $i") //输出“i = 10”Kotlin 支持三个引号 """ 扩起来的字符串,支持多行字符串,比如:
fun main(args: Array<String>) {
val text = """
多行字符串
多行字符串
"""
println(text) // 输出有一些前置空格
}
String 可以通过 trimMargin() 方法来删除多余的空白
实例:
fun main(args: Array<String>) {
println("请输入对话")
while(true) {
var str ="顾客:"+ readLine();str = str?.replace("吗", "")
//中文符号
str = str?.replace("?", "!")
//英文符号
str = str?.replace("?", "!")
str=str?.replace("顾客","客服")
print(str+"\n")
}
}
4.比较
Kotlin 中没有基础数据类型,只有封装的数字类型,你每定义的一个变量,其实 Kotlin 帮你封装了一个对象,这样可以保证不会出现空指针。数字类型也一样,所有在比较两个数字的时候,就有比较数据大小和比较两个对象是否相同的区别了。
在 Kotlin 中,三个等号 === 表示比较对象地址(类似java中的==),两个 == 表示比较两个值大小(类似java中的equals方法)。
fun main(args: Array<String>){
val a: Int = 10000
println(a === a) // true,值相等,对象地址相等
//经过了装箱,创建了两个不同的对象, Int?和Int即有没有涉及装箱,创建对象
val boxedA: Int = a
val anotherBoxedA: Int? = a//虽然经过了装箱,但是值是相等的,都是10000
println(boxedA === anotherBoxedA) // false,值相等,对象地址不一样
println(boxedA == anotherBoxedA) // true,值相等
}
5.数组类型
数组用类 Array 实现,并且还有一个 size 属性及 get 和 set 方法,由于使用 [] 重载了 get 和 set 方法,所以我们可以通过下标很方便的获取或者设置数组对应位置的值。(获取数组长度用size方法,没有length)
数组的创建两种方式:一种是使用函数arrayOf();另外一种是使用工厂函数。如下所示,我们分别是两种方式创建了两个数组:
fun main(args: Array<String>) {
//[1,2,3]
val a = arrayOf(1, 2, 3)
//[0,2,4]
val b = Array(3, { i -> (i * 2) })
//读取数组内容
println(a[0]) // 输出结果:1
println(b[1]) // 输出结果:2
}如上所述,[] 运算符代表调用成员函数 get() 和 set()。
注意: 与 Java 不同的是,Kotlin 中数组是不型变的(invariant)。
除了类Array,还有ByteArray, ShortArray, IntArray,LongArray,DoubleArray,FloatArray,CharArray用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Array一样:
val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]对于字符串类型:
var string_array:Array<String> = arrayOf("how","are","you")数组的遍历可以利用数组下标循环:for (i in array.indices)