Kolin系列(一)—— 基本数据类型、数组、字符串

​​​​在这里插入图片描述
众所周知,Kotlin出来已经良久了。虽然说能够在Android和java开发中,缩减很大的代码量。但是很多的开发者已经习惯于使用它的老大哥们,所以说,尽管Kotlin拥有着众多优势,但是从推出开始,总是不温不火。直到2019年05月08日,谷歌在当日举行的 I/O 大会上宣布,Kotlin 编程语言是 Android 应用程序开发人员的首选语言。经过这次大会以后,Kotlin终于还是扬眉吐气了一把。
作为一枚从事安卓的小程序猿,在我学习的时候同时分享出来,也是希望大家能够一同进步。再不济也能推广一下嘛对吧。

一 基本数据类型

1.1 基本类型的变量声明

kotlin变量的声明方式与Java中声明变量有很大的区别,和前端反而有相似之处。使用var或val关键字来修饰。其中:

var: 用此关键字声明的变量表示可变变量,即可读且可写。相当于Java中普通变量
val: 用此关键字声明的变量表示不可变变量,即可读且不可写。相当于Java中用final修饰的变量

定义格式: 关键字 变量名: 数据类型 = xxx (var i: Int = 10)

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

例:

//立即初始化
var var_a: Int = 10

//后面推导出类型
var var_b = 5

//没有回车换行,添加其他语句,需要增加分号
var var_c  = 5.20 ; var var_d  = 100

println("var_a => $var_a \t var_b => $var_b \t var_c => $var_c \t var_d => $var_d")

fun funA () {
	var_a = 100
	println("var_a => $var_a \t var_b => $var_b \t var_c => $var_c \t var_d => $var_d")
}

打印结果为:

var_a => 10 var_b => 5 var_c => 5.20 var_d => 100
var_a => 100 var_b => 5 var_c => 5.20 var_d => 100

//立即初始化
val val_a: Int = 100

//同上
val val_b = 50.0

fun funA () {
//	val_a= 200 这句会报错,因为修饰val_a的是val关键字,是不能修改的
}

println("val_a => $val_a \t val_b => $val_b")

打印结果为:

val_a => 10 val_b => 50.0


1.2 简单变量之间的转换

Kotlin不允许用java的前缀表达式进行强制转换类型,只能调用类型转换函数输出其他类型的变量。如下图所示

Kotlin的数据类型转换函数java转换表达式转换函数说明
toInt()(int)转换为整数
toLong()(long)转换为长整数
toFloat()(float)转换为浮点数
toDouble()(double)转换为双精度
toChar()(char)转换为字符
toString()+ “”/数据类型封装类.toString(数据类型)/其他转换为字符串
        var i = 100.0
        var toInt = i.toInt()
        var toLong = i.toLong()
        var toFloat = i.toFloat()
        var toDouble = i.toDouble()
        var toChar = i.toChar()
        var toString = i.toString()
        println("toInt => $toInt \n toLong=> $toLong \n toFloat => $toFloat \n toDouble => $toDouble  \n toChar => $toChar \n toString => $toString ")

打印结果为:

toInt => 100
toLong=> 100
toFloat => 100.0
toDouble => 100.0
toChar => d
toString => 100.0


二 数组

2.1 数组变量的声明

先分别用一组整型数组进行对比

java : int[ ] int_array = new int[ ] {1, 2, 3};
kotlin : var int_array:IntArray = intArrayOf(1, 2, 3)

两者对比,有如下区别

  1. Kolin提供了新的整型数组类型(IntArray)
  2. 分配一个常量数组,Kotlin调用的是intArrayOf方法,并不使用New关键字

其他的类型如下

Kotlin的基本数组类型数组类型的名称数组类型的初始化方法
整型数组IntArrayintArrayOf
长整型数组LongArraylongArrayOf
浮点数组FloatArrayfloatArrayOf
双精度数组DoubleIntArraydoubleArrayOf
字符数组CharArraycharArrayOf
布尔型数组BooleanArraybooleanArrayOf

数组举例

        var longArray: LongArray = longArrayOf(1, 2, 3)
        var floatArray: FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f)
        var doubleArray: DoubleArray = doubleArrayOf(1.0, 2.0, 3.0)
        var booleanArray: BooleanArray = booleanArrayOf(true, false, true)
        var charArray: CharArray = charArrayOf('a', 'b', 'c')

当然,还有一种方式也能快速进行数组的创建

        var int_array:Array<Int> = arrayOf(1, 2, 3)
        var long_array:Array<Long> = arrayOf(1, 2, 3)
        var float_array:Array<Float> = arrayOf(1.0f, 2.0f, 3.0f)
        var double_array:Array<Double> = arrayOf(1.0, 2.0, 3.0)
        var boolean_array:Array<Boolean> = arrayOf(true, false, true)
        var char_array:Array<Char> = arrayOf('a', 'b', 'c')

String是一种特殊的基本数据类型,在Kotlin中可以使用如下方式进行实现

var string_array:Array<String> = arrayOf("hello", "kotlin") 

2.2 数组元素的操作

数组元素常见的处理包括获取数组长度、获取指定位置的数组元素等,和java的区别包括

  1. 获取数组长度,java使用.length,而Kotlin使用.size
  2. 获取指定位置的数组元素,Kotlin新增get和set两个方法,通过get方法获取元素值,通过set方法设定元素值

举例如下:

        var intArray:Array<Int> = arrayOf(1, 2, 3)
        val size = intArray.size//得到数组数量
        val i = intArray[1]
        val get = intArray.get(1)  // 等同于intArray[1]
        intArray.set(1,222) // 等同于intArray[1] = 222

三 字符串

3.1 字符串与基本类型的转换

字符串转换目标Kotlin转换方式java转换方式
整型字符串变量的toInt方法Integer.parseInt
长整型字符串变量的toLong方法Long.parseLong
浮点数字符串变量的toFloa方法Float.parseFloat
双精度数字符串变量的toDouble方法Double.parseDouble
字符数字符串变量的toChar方法Char.parseChar
布尔型数字符串变量的toBoolean方法Boolean.parseBoolean

3.2 字符串的常用方法

        var s:String = "hello kotlin"

        //基本用法和java类似
        val indexOf:Int = s.indexOf("k")
        val substring:String = s.substring(0, 5)
        val replace:String = s.replace("hello", "nihao")


        //在java中返回的是数组,在kotlin返回的是队列
        val split:List<String> = s.split("k")

        //kotlin允许直接通过下标访问字符串指定位置的字符
        val toString:String = s[1].toString()
        val toString1:String = s.get(1).toString();

3.3 字符串的模板及拼接

  • 区别于java,Kotlin的字符串拼接是直接在字符串中使用“$变量名”来引用变量的值

    用法如下

        var s:String = "hello kotlin"
        println("字符串的内容是 $s")
  • 如果是在字符串中调用相关方法,就需要用{}将运算表达式给包裹起来

    用法如下

        var s:String = "hello kotlin"
        println("字符串的长度是 ${s.length}")
  • 如果类似是美元符号$这样的特殊字符,则不能直接打印,需要进行转义才能进行打印,可以通过表达式内层的{’’}进行打印

    用法如下

        var s:String = "5"
        println("这个苹果的价格是${'$'} $s")

先介绍到这里,如果有问题,希望大家能够指出来,我必定会马上修改。感谢!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值