Kotlin day01-数据类型

2024-05-08 17:08
文章标签 数据类型 day01 kotlin

本文主要是介绍Kotlin day01-数据类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

基本数据类型

变量和常量

var 声明变量

非空类型和可空类型

数据类型转换

字符串


  • 基本数据类型

在java中,有8中基本数据类型(byte,short,int,long,float,double,boolean,char)

kotlin中的整型是引用类型,不是基本类型,相当于Java的包装类,继承于Number类,均可以调方法

整型Byte1字节 8位-128-127
Short2字节 16位-2的15次方-2的15次方-1
Int 4字节 32位-2的31次方-2的31次方-1
Long8字节 64位-2的63次方-2的63次方-1
浮点型Float4字节32位--
Double8字节64位--
字符型Char2字节16位--
布尔类型Boolean1字节8位--
  • 变量和常量

var 声明变量

    //显示声明变量,可以不用赋值,且x1不可以为nullvar x1:Int//显示声明变量,可以不用赋值,且x2可以为nullvar x2:Int?x2=null//隐式声明变量,不指定数据类型,必须赋值var y=100 var c1:Char='a'

⚠️这里需要注意:带?和不带的区别:

不带?的原理是变量声明之后,会被映射成java的基本数据类型,基本类型的话不可以为null;

带?的变量声明,会被映射出java的包装类型,因为可以为null

⚠️在java中,用==来比较两个对象的地址是否相等。在kotlin中用===来比较两个对象的地址是否相等

JVM会自动维护八种基本类型的常量池,int常量池中初始化-128~127的范围,所以当为Integer i=127时,在自动装箱过程中是取自常量池中的数值,而当Integer i=128时,128不在常量池范围内,所以在自动装箱过程中需new 128,所以地址不一样,kotlin也是这个原理。

所有上面的x1和x2不在这个范围的话,那么println(x1===x2),打印出来会是false

⚠️在java中,输出‘a’,可以这样定义,char c=97;

     在kotlin中,Char只能赋值字符,只能通过var c1:Char=‘a’,不能用整型或者整型表达式赋值,但是可以做运算

println(c1+4)会打印出‘e’
  • 非空类型和可空类型

通过?区分,例如var b:Boolean?=null和var b:Boolean,本质上是两种不同的数据类型,这里一定要注意,而且,如果是可空类型的数据,不能直接调用属性和方法,会报错

那上面的问题就不能解决吗,当然不是,kotlin要求先用if判空,在条件语句里面进行操作,如图:

或者通过安全调用的方式

或者通过Elvis方式

  • 数据类型转换

这里举几个简单的例子,写法都是一样的

x2.toFloat()
x2.toString()
x2.toDouble()
x2.toByte()
var x:Int?=str.toIntOrNull()//字符串转其他类型,这里前面必须加问号,否则无法编译
  • 字符串

kotlin中的String和Java中的String并不是一个,在kotlin中,String的方法更多

  • """""",在kotlin中允许三个引号,定义的字符串可以换行,输出的结果也是换行的

  • ${},字符串拼接
println("str4字符串的长度是:${str4.length}")
  • kotlin 中String的方法有很多,这里做个总结
方法描述
str[index]取String的指定下标的元素
 str.first() 取第一个元素
str.last()取最后一个元素
str.indexOf("")如果包含查找元素,则返回字符位置,不包含,则返回-1
str.indexLastOf("")如果包含查找元素,则返回字符串从右向左的第一个位置,不包含,返回-1
String plus(text)和“+”效果一样,字符串拼接
Boolean equals(text[,ignoreCase])第二个参数不写,相当于之前说的“==”比较内容,第二个参数为true,则忽略内容大小写就行比较
String substring(startIndex[,endIndex])如果只填必填参数,保留从start到末尾的字符,如果end填写了,则保留从start到end之间的字符串
String substringBefore()截取第一个出现的字符串前面的字符串内容
String substringAfter()截取第一个出现的字符串后面的字符串内容
String substringBeforeLast()截取最后一个出现的字符串前面面的字符串内容
String substringAfterLast()截取最后一个出现的字符串后面的字符串内容
replace()替换
replaceFirst()替换第一个出现的字符串
replaceBefore()替换第一个出现的字符串前面的内容
replaceAfter()替换第一个出现的字符串后面的内容
replaceBeforeLast()替换最后一个出现的字符串前面的内容
replaceAfterLast()替换最后一个出现的字符串后面的内容
str.spilt("")根据“”中的内容,把字符串分隔成一段一段的
Boolean isBlank()字符串是否全是空格
Boolean isEmpty()字符串长度是否为0,为0返回true
String reversed()字符串反转
String startsWith()检测字符串是否是根据特定字符串开始
String endsWith()检测字符串是否是根据特定字符串结束
String trim()清除空格
String drop(int)删除头部的几个元素并返回
String dropLast(int)删除末尾的几个元素并返回

方法很多,一时间就整理这么多吧,待续//

 

这篇关于Kotlin day01-数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/970923

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

通过C#获取Excel单元格的数据类型的方法详解

《通过C#获取Excel单元格的数据类型的方法详解》在处理Excel文件时,了解单元格的数据类型有助于我们正确地解析和处理数据,本文将详细介绍如何使用FreeSpire.XLS来获取Excel单元格的... 目录引言环境配置6种常见数据类型C# 读取单元格数据类型引言在处理 Excel 文件时,了解单元格

Kotlin运算符重载函数及作用场景

《Kotlin运算符重载函数及作用场景》在Kotlin里,运算符重载函数允许为自定义类型重新定义现有的运算符(如+-…)行为,从而让自定义类型能像内置类型那样使用运算符,本文给大家介绍Kotlin运算... 目录基本语法作用场景类对象数据类型接口注意事项在 Kotlin 里,运算符重载函数允许为自定义类型重

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换