• 基本数据类型
  1. 基本数据类型的变量声明(Kotlin与Java的基本数据类型对比)

基本数据类型名称

Kotlin的数据类型

Java的数据类型

整型

Int

int和Integer

长整型

Long

Long和Long

浮点型

Float

float和Float

双精度

Double

double和Double

布尔型

Boolean

boolean和Boolean

字符型

Char

char

字符串

String

String

看起来很熟悉,但是你在敲代码时声明变量代码,便会发现编译有问题。

按Java的写法是下面这样的:

Int i = 0;

若按Java的规则来书写Kotlin代码,Android Studio立即提示编译不通过,所以Kotlin也有自己的一套声明规则,正确的Kotlin声明变量的代码是下面这样的:

var i:Int = 0

注:前面的var表示后面是一个变量声明语句,接着是“变量名:变量类型”的格式声明。而不是常见的“变量类型 变量名”这种格式。至于后面的分号,则看该代码行后面是否还有其他语句,如果变量声明完毕直接回车换行,那么后面无需带分号;如果没有回车换行,而是添加其他语句,那么变量声明语句要带上分号。

 

  1. 简单变量之间的转换

 Kotlin变量的另一个重要的特点是类型转换,在Java开发中,如int、long类型的变量可以直接在变量名前面加上诸如(int)、(long)这种表达式进行强制类型转换;但在Kotlin中,不允许通过Java的前缀表达式来强制转换类型,只能调用类型转换函数输出其他类型的变量,下表格是常见的几种类型转换函数的说明

Kotlin的数据类型转换函数

转换函数说明

toInt

转化为整型数

toLong

转化为长整型

toFloat

转化为浮点型

toDouble

转化为双精度数

toChar

转化为字符

toString

转化为字符串

 

实例:

 val origin:Float = 65.0f

 var index:Int = 0

tv_origin1.text = origin.toString()

btn_origin.setOnClickListener {

Index = origin.toInt()

tv_origin2.text = Index .toString()

}

输出的内容:

第一行tv_origin1控件上显示数据是:65.0

第一行tv_origin1控件上显示数据是:65

注:注意到上述类型转换代码的第一行变量声明语句以val开头,而其其他变量声明均以var开头,这是为什么呢?其实val与var的区别在于,前者修饰过的变量只能在第一次声明时赋值,后续不能再赋值;而后者修饰过的变量在任何时候都允许赋值。方便记忆的话,可以把val看作是Java里面的final关键字;至于var,Java里没有对应的关键字,就当它是例行公事好了。

 

二、数组

 1.数组变量声明

 在Java中声明数组跟在C语言中声明是一样的,以整型数组为例,声明数组并加以初始化的语句如下所示:

 int[] int_array = new int[]{1 ,2 ,3};

其他基本类型的数组与之类似,只要把int替换为long、float、double、boolean、char其中之一即可。但在Kotlin中,声明并初始化一个整型数组的语句是下面这样的:

var int_array: IntArray = intArrayOf(1, 2, 3)

两相对比,对于整型数组的声明,Kotlin与Java之间有一下区别:

  1. Kotlin另外提供了新的整型数组类型,即IntArray
  2. 分配一个常量数组,Kotlin调用的是intArrayOf方法,并不适用new关键字

 

2.Kotlin基本数据类型名称及其初始化方法对应的关系

Kotlin的基本数组类型

数组类型名称

数组类型的初始化方法

整型数组

IntArray

IntArrayOf

长整型数组

LongArray

longArrayOf

浮点数组

FloatArray

floatArrayOf

双精度数组

DoubleArray

doubleArrayOf

布尔型数组

BooleanArray

booleanArrayOf

字符数组

CharArray

charArrayOf

下面举两个基本数据类型初始化的代码例子:

var int_array: IntArray = intArrayOf(1, 2, 3)
var float_array: FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f)
var boolean_array: BooleanArray = booleanArrayOf(true, false, true)

不知同学们注意到上面Kotlin数组类型不包括字符串数组,而Java是允许使用字符串数组的,声明字符串数组的Java代码示例如下:

String[] string_array = new String[]{"How" ,"Are" ,"You"}

但在Kotlin这里,并不存在名为StringArray的数组类型,因为String是一种特殊的基本数据类型。想要在Kotlin中声明字符串数组,得使用Array<Stirng>类型。示例如下:

var string_array:Array<String> = arrayOf("How" ,"Are" ,"You")

此种方法所有基本数据类型都通用

 

  1. 数组元素的操作

 数组常见的处理包括获取数组的长度、获取指定位置的数组元素等,这些操作在Kotlin与Java之间的区别包括:

  1. 对于如何获取数组长度,Java使用.length ,而Kotlin使用.size。
  2. 对于如何获取指定位置的数组元素,Java通过方括号加下标来获取,比如“int_array[0]”,指的是得到该数组的第一个元素;Kotlin也通过方括号加下标来获取指定元素,不过Kotlin还拥有get和set两个方法,通过get方法获取元素值,通过set方法修改元素值,看起来像子啊操作ArrayList队列。

下面是Kotlin操作字符串数组的示例:

var string_array: Array<String> = arrayOf("How", "Are", "You")
btn_string.setOnClickListener {
    var str: String = ""
    var i: Int = 0
    while (i < string_array.size) {
        str = str + string_array[i] + "、"
        i++
    }
    tvContent.text = str
}

输入结果:How、Are、You

 

  1. 字符串与基本数据类型转换

 字符串转化Wie整型: Kotlin是调用toInt方法、Java是Integer.parseInt(字符串变量)

转其他基本类型方式一样。

字符串的常用方法:

查找字符串:indexOf

截取字符串:substring

替换字符串:replace

分隔字符串:split

注:在这些字符串处理里面,唯一区别是split方法的返回值,在Java中split方法返回的是String数组,即String[];但在Kotlin中,split方法返回的是String队列,即List<String>。

 

  1. 字符串拼接

 常用的拼接两种方式

var str = "How Are"
var str_t = str + "You"
var str_s = "${str}You"

如果第二种需要加美元符那么要用转换符
var str_f = "\var str_f = "\$${str}You"$${str}You"

 

最后是交流公众号,大家可以关注一下

Kotlin从零到精通----第二章数据类型(1)_整型