由于工作项目的需要用kotlin,打算从5.1开始 每天坚持重新开始学点kotlin,5.1本周从基础开始
目录:
1.基本类型
2.字符串
3.数组
1.基本类型
基本数据类型Int,Boolean及其他
在Java里面把基本数据类型和引用类型做了区分,例如int 和 Integer 这两个类型. 在Kotlin中不区分基本数据类型和包装类型,永远都是同一个类型(比如:Int)
val i : Int = 1
val list : List<Int> = listof(1,2,3)
Kotlin处理数值型类型和Java类似,但不完全一样。例如,数字没有隐含的扩展转换,在某些情况下,字面量稍有不同。
Kotlin提供了以下六种内置的数值类型:
类型 长度(字节)
Double 8
Float 4
Long 8
Int 4
Short 2
Byte 1
从上面可以看到characters在Kotlin中不属于数值类型。
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.字符串
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 ="NBA球员:"+ readLine();
str = str?.replace("吗", "")
//中文符号
str = str?.replace("?", "!")
//英文符号
str = str?.replace("?", "!")
str=str?.replace("NBA球员","CBA球员")
print(str+"\n")
}
}
3.数组
/**整型Int的数组*/
val arrayOfInt: IntArray = intArrayOf(1,3,5,7,9)
/**字符Char类型的数组*/
val arrayOfChar: CharArray = charArrayOf('H','e','l','l','o','W','o','r','l','d')
/**字符串String数组*/
val arrayOfString: Array<String> = arrayOf("Hello","World")
/**类的数组*/
val arrayOfUniversity: Array<University> = arrayOf(University("北京大学"),University("工业大学"))
fun main(args: Array<String>) {
//查看有多少个元素
println(arrayOfInt.size)
//遍历数组
for (char in arrayOfChar){
println(char)
}
//根据所引获取数据,数组是从0开始的,现在获取第二个工业大学
println(arrayOfUniversity[1])
//重新给数组赋值,篮球大学
arrayOfUniversity[1] = University("篮球大学")
println(arrayOfUniversity[1])
//将char连接成一个字符串,默认是自动由逗号","分割的,输出H, e, l, l, o, W, o, r, l, d
println(arrayOfChar.joinToString())
//如果想要连成HelloWorld
println(arrayOfChar.joinToString (""))
//数组的切片,输出3,5,结尾需要arrayOfInt-1,不然会报索引越界异常
println(arrayOfInt.slice(1..2))
println(arrayOfInt.size)
}