kt学习--基本数据类型
文章目录
- 一、基本数据类型
- 1.1 var 变量声明
- 1.2 val 常量声明
- 二、数组的使用
- 2.1 数组的声明
- 2.2 数组的使用
- 三、字符串
- 3.1 字符串与基本类型的转换
- 3.2 字符串的基本使用
- 3.3 字符串的模板和拼接
- 四、容器
- 4.1 容器说明
- 4.2 集合Set/MutableSet
- 4.2.1 Set/MutableSet说明
- 4.2.2 for-in遍历
- 4.2.2 迭代器遍历
- 4.2.2 forEach遍历
- 4.3 队列List/MutableList
- 4.3.1 List/MutableList说明
- 4.3.2 for-in遍历
- 4.3.3 迭代器遍历
- 4.3.3 forEach遍历
- 4.4 映射Map/MutableMap
- 4.4.1 Map/MutableMap说明
- 4.4.2 for-in遍历
- 4.4.3 迭代器遍历
- 4.4.4 forEach遍历
一、基本数据类型
1.1 var 变量声明
//var 后面表示一个变量 后续可以给变量赋值var i: Int = 0
1.2 val 常量声明
//val修饰过的变量只能在第一次声明时赋值,后续不能再赋值, 否则报错 Val cannot be reassignedval orign: Float = 65.0f
二、数组的使用
2.1 数组的声明
基本数组类型 | 数组类型名称 | 数组类型的初始化 |
---|---|---|
整形数组 | IntArray | intArrayOf |
长整型数组 | LongArray | longArrayOf |
浮点数组 | FloatArray | floatArrayOf |
双精度数组 | Doublerray | doubleArrayOf |
布尔类型数组 | BooleanArray | booleanArrayOf |
字符数组 | CharArray | charArrayOf |
var int_arr: IntArray = intArrayOf(1, 2, 3)
var long_arr: LongArray = longArrayOf(11, 22, 33)
var float_arr: FloatArray = floatArrayOf(1f, 2f, 5f)// String数组的声明需要使用Array<String>
//数组变量都可以通过Array<类型>进行声明
var string_arr:Array<String> = arrayOf("how","can","i")
2.2 数组的使用
var str_arr:Array<String> = arrayOf("how","can","i","study","kotlin")
//获取数组长度val arrLength:Int = str_arr.sizeLog.e(TAG,"获取数组长度:"+ arrLength)//获取数组指定位置元素var indexValue:String = str_arr[4]Log.e(TAG,"获取指定下标的值:"+ indexValue)var getIndexValue:String = str_arr.get(4)Log.e(TAG,"通过get方式获取下标的值:"+getIndexValue)
三、字符串
3.1 字符串与基本类型的转换
// 字符串与基本数据类型之间的转换
// toInt(),toFloat(),toLong(),toDouble(),toChar()
val testStr: String = "66"
val changeInt: Int = testStr.toInt();
Log.e(TAG, "转换后整型后输出:" + changeInt)
3.2 字符串的基本使用
//字符串的常用方法
val strData:String = "How can i study kt";//通过get()方法获取指定位置上的字符串
var findStr:Char = strData.get(2)
Log.e(TAG,"查找子串:"+ findStr)//替换子串
var replaceStr:String = strData.replace("i","you")
Log.e(TAG,"替换后的字符串:"+ replaceStr)//截取指定位置
var cutStr:String = strData.substring(0,strData.indexOf("i"))
Log.e(TAG,"截取后的字符串:"+ cutStr)//按照特定字符分割子串
//splite 返回的是String集合
var strList:List<String> = strData.split(" ")for (str in strList){Log.e(TAG,"分割的字符串:"+ str)}// 根据下标获取某一个字符串
var getCharByIndex:String = strData[2].toString()
Log.e(TAG,"根据下标获取字符串:"+ getCharByIndex)
3.3 字符串的模板和拼接
//$变量名 表示可在此处引用该变量的值
mBtn.setOnClickListener{mBtn.text = "字符串拼接为$strData"
}
//如果变量需要进行运算,需要用大括号把运算表达式括起来
mBtn.setOnClickListener{mBtn.text = "字符串拼接${strData.length}"
}
//对美元符号做转译
mBtn.setOnClickListener {mBtn.text = "折合美元${'$'}${strData.length}"
}
四、容器
// Kt支持在声明时进行初始化赋值val statelites: List<String> = listOf("金星", "木星", "水星", "火星", "土星");
4.1 容器说明
- 容器分类 Set 队列List 映射Map
- 容器的公共方法
- isEmpty
- isNotEmpty
- clean
- contains 是否包含某个元素
- iterator 迭代器
- count 容器包含元素的数量
4.2 集合Set/MutableSet
4.2.1 Set/MutableSet说明
- 1、元素不按顺序排列,无法按照下标进行访问
- 2、元素存在唯一性,通过哈希值校验是否存在相同的元素,如果存在,则覆盖
- 3、因为Set是只读集合,初始化后就不可修改,所以元素变更的方法只适合MutableSet
- 4、MutableSet操作的限制
- <1>、MutableSet的add方法仅仅往集合中添加元素,集合是无序的,因此不知道元素的下标
- <2>、MutableSet没有修改元素值的方法,一个元素如果被添加,就不能修改
- <3>、MutableSet的remove方法用于删除指定元素,但无法删除某个位置的元素
4.2.2 for-in遍历
var phoneBrand: Set<String> = setOf("Iphone", "VIVO", "OPPO", "HUAWEI", "XIOAMI", "SumSung")// for-in循环mBtn.setOnClickListener {var desc: String = ""for (item in phoneBrand) {desc = "${desc}名称:${item} \n"}mDescTv.text = "手机品牌包含${phoneBrand.size}款: \n $desc"}
4.2.2 迭代器遍历
mBtn.setOnClickListener {var desc: String = ""var iterator = phoneBrand.iterator()while (iterator.hasNext()) {var getBrand = iterator.next()desc = "${desc}名 称:${getBrand}\n"}mDescTv.text = "手机品牌包含${phoneBrand.size}款: \n $desc"}
4.2.2 forEach遍历
mBtn.setOnClickListener {var desc: String = ""phoneBrand.forEach {desc = "${desc}名称:+${it} \n"}mDescTv.text = "手机品牌包含${phoneBrand.size}款: \n $desc"}
4.3 队列List/MutableList
4.3.1 List/MutableList说明
- 1、队列是一种元素按照顺序排列的容器
- 2、能够通过get方法获取指定位置的元素,也可以直接通过下标获取
- 3、MutableList的add方法都是把元素添加到队列的队尾,也可以指定添加的位置
- 4、MutableList的set方法允许替换或者修改指定位置的元素
- 5、MutableList的remove方法允许删除指定位置的元素
- 6、MutableList的遍历除了for-in,迭代遍历, forEach遍历,还多了一种下标循环遍历
4.3.2 for-in遍历
val phoneBrandist: MutableList<String> =mutableListOf("IPHONE", "VIVO", "OPPO", "XIAOMI", "HUAWEI", "SUMSUNG");//for -inmBtn.setOnClickListener {var desc: String = "";for (i in phoneBrandist.indices) {val brandName: String = phoneBrandist.get(i);desc = "${desc}品牌:${brandName} \n"}mDescTv.text = "当前热销的品牌有一下${phoneBrandist.size}款 \n ${desc}"}
4.3.3 迭代器遍历
- MutableList提供了sort方法用于给队列中的元素重新排序
- sortBy表示按照指定条件升序
- sortDescending 表示按照指定条件降序
mAscBtn.setOnClickListener {phoneBrandist.sortBy { it.length }var desc: String = ""val iterator = phoneBrandist.iterator()while (iterator.hasNext()) {val brandName: String = iterator.next();desc = "${desc} 品牌${brandName} \n"}mDescTv.text = "当前热销的品牌有一下${phoneBrandist.size}款 \n" +" ${desc}"}
4.3.3 forEach遍历
mDscTv.setOnClickListener {phoneBrandist.sortByDescending { it.length }var desc: String = ""phoneBrandist.forEach {desc = "${desc} pinpai:${it} \n"}mDescTv.text = "当前热销的品牌有一下${phoneBrandist.size}款 \n" +" ${desc}"}
4.4 映射Map/MutableMap
4.4.1 Map/MutableMap说明
- 1、相同键名指向的键值是唯一的
- 2、containsKey 方法判断是否存在指定键名的元素,containsValue方法判断是否存在指定键值的元素
- 3、使用put方法,Map会根据键名寻找相同元素,找不到就添加,找到就替换
- 4、MutableMap的remove方法是根据键名来删除元素的
- 5、调用mapOf和mutableMapOf方法初始化映射时,有两种方式表达键值对元素
键名 to 键值, Pair(键名,键值)
4.4.2 for-in遍历
var goodsMap: Map<String, String> = mapOf("iphone" to " iphone11","huawei" to "Meta 10","xiaomi" to "小米11","vivo" to " IQOO","oppo" to "R11","sumsung" to "Galxy")var goodsMulMap: MutableMap<String, String> = mutableMapOf(Pair("iphone", "iphone11"),Pair("huawei","Meta 10"),Pair("xiaomi","小米11"),Pair("vivo","IQOO"),Pair("oppo","R11"),Pair("sumsung","Galxy"))// for-in循环mBtn.setOnClickListener {var desc:String = ""for (item in goodsMap){desc = "${desc}厂家:${item.key},名称:${item.value} \n"}mDescTv.text = "${goodsMulMap.size}款手机品牌对映${desc} \n"}
4.4.3 迭代器遍历
mBtn.setOnClickListener {var desc:String = ""var iterator = goodsMulMap.iterator()while (iterator.hasNext()){val item = iterator.next()desc = "${desc} 厂家:${item.key},型号:${item.value} \n"}mDescTv.text = "${goodsMulMap.size} 款手机品牌对映:${desc} \n"}
4.4.4 forEach遍历
mBtn.setOnClickListener {var desc:String = ""
// goodsMulMap.forEach{// desc = "${desc} 厂家:${it.key}, 型 号:${it.value} \n"
// }goodsMulMap.forEach{key,value -> desc = "${desc} 厂家: ${key}, 对映型号:${value} \n"}mDescTv.text = "${goodsMulMap.size}款手机对映关系: \n ${desc} "}
kt学习--基本数据类型相关推荐
- Redis学习笔记 - 数据类型与API(1)Key
Redis学习笔记 - 数据类型与API(1)Key Key相关命令 1. 常用命令 命令 含义 时间复杂度 keys 查找所有符合给定模式 pattern 的 key O(N), N 为数据库中 k ...
- 小猿圈python金角大王_小猿圈python学习-基本数据类型
小猿圈python学习-基本数据类型 2019-04-24 11:16:14 1点赞 6收藏 0评论 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大, ...
- ArcGIS基础学习:数据类型
ArcGIS基础学习:数据类型 前言 最近喜欢上了学习地理统计的相关内容,准备开始学习,会不定时修改. 第一章 数据类型 一.arcgis数据类型: 1.数字型:整数型.单精度浮点型.双精度浮点型 2 ...
- c语言初学知识点,C语言学习关于数据类型的一些知识点(初学者)
1.整型常量的的前缀:(1)十进制常数无前缀. (2)八进制常数前缀为0,八进制常数无符号. (3)十六进制常数前缀为0X或0x. 注:在程序中是根据前缀来区分各种进制数的.因此在书写常数时不要把前缀 ...
- C 语言 和 C++语言的对比学习 二 数据类型
不管是什么语言,我们最习惯的是通过 "hello world" ,来昭告世界,我们有了新的语言来向这个世界问好,尽管真正属于我们自己的其实是哭声.(呵呵,笑点有点低),下面我们来介 ...
- Python3学习笔记-数据类型和变量
有C++基础,一直对"万能"的Python语言感兴趣,目前正在学习廖雪峰老师的Python3教程和其他资料用来入门,这里记录一些没接触过或与C++有差异的知识,方便自己查阅吧~ 字 ...
- Redis学习(4)-数据类型set和zset
Set数据类型及操作 Set集合是通过hash table实现的,所以添加.删除和查找的复杂度都是O(1),hash table会随着添加或者删除自动的调整大小,需要注意的是 hash table大小 ...
- python 声明变量类型_python基础学习03数据类型和变量
数据类型和变量 1. 数据类型 1.1 整数 Python中不限制整数正负及大小,例如:1,-1,100,-100等等.计算机常用十进制和十六进制表示数值,比如十六进制表示方法是用前缀0x加后缀0-9 ...
- c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量
变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...
最新文章
- 【组队学习】【35期】数据可视化(Matplotlib)
- Ubuntu Linux 安装 .7z 解压和压缩文件
- 【Spark 深入学习 04】再说Spark底层运行机制
- arcgis缓冲后在envi中聚类出错
- random_shuffle 和transform算法
- 为什么我的IP地址经常变化
- 2013-开始新的一年
- 内置模块(time、random、hashlib、os)
- python redis模块常用_python redis 模块
- 金九银十,23届秋招信息超全汇总表!各大名企优质岗位持续更新中···
- 地理信息系统导论第八版_地理信息系统导论.pdf
- matlab计算下列极限,MATLAB微积分计算极限,又快又好
- 别踩白块_前端H5游戏毕设
- 移动端模拟导航可点击自动滑动
- 用cefsharp来steam账号注册
- Linux权限(重点)
- [人生]工作两年后感悟的《大话西游》
- 复杂的生活简单过,简单的事情重复做
- python中英文对照
- 云数据库行业动态【2023年2月版】