Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用-阿里云开发者社区

开发者社区> 幸运券发放> 正文

Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用

简介: Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用作者:@stars-one本文为作者原创,转载请注明出处:https://www.cnblogs.com/kexing/p/11249014.
+关注继续查看

Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用
作者:@stars-one
本文为作者原创,转载请注明出处:https://www.cnblogs.com/kexing/p/11249014.html

本文适合有Java基础的人

Kotlin语法特点
相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获

主函数
kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之前的java那般,还要定义个类,写上main方法

复制
fun main(args: Array) {

println("hello world")

}
基本数据类型
这是说是基本数据类型,其实下面的这些都是kotlin封装好的类,就是相当于Java中的Integer,FLoat等包装类,数值会自动包装。

这样的好处就是,数值是一个对象,可以保证不会出现空指针。

类型 位宽度
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8
注意,kotlin中的字符类型Char不属于基本数据类型

由于是对象,所以比较得比较内容,kotlin中封装了==和===两个运算符供我们比较不同的内容和对象地址

=== 表示比较对象地址,两个 == 表示比较两个值(内容)大小

类型转换:

上面的基本数据类型都有下面的方法,负责类型转换

toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
复制
//显示转换
val num: Byte =1
val num1 = num.toInt
变量声明
两个关键字:

val 声明一个只读常量
var 声明一个变量
val相当于使用了java中的final关键字修饰变量(声明常量)
var就是和之前声明

复制
//声明一个整型常量num,数值为12,之后无法对num进行赋值操作
val num: Int = 12
//kotlin的自动判断类型特性,上面的式子也可以这样写
val num = 12

//声明一个常量,赋值过一次之后,无法再次对常量进行赋值
val num: Int
num = 12
复制
//kotlin的基本数据类型变量,还可以加上“_”来便于阅读,不影响数值
//下面的num还是一个Int类型的数据
val num = 1_000_000
//小数也可以加上“_”
val num = 1.02_120
字符串String
普通用法
复制
//和java一样,字符串里可以包含转义字符
val str = "hello worldn"
println(str)
特殊用法
复制
//里面的n也会打印出来
val str = """hello worldn"""
println(str)
复制
//去除前面的“|”
val text = """

|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()

//去除前面的“>”
val text = """

>Tell me and I forget.
>Teach me and I remember.
>Involve me and I learn.
>(Benjamin Franklin)
""".trimMargin(">") 

字符串模板:
$开头,后面可接一个变量,或者是用花括号,里面写一个表达式

复制
val num = 5
val text = "i = $num"//输出“i=5”

val text = "the length = ${arrays.length}"

//显示$,$不支持转义
val price = "${'$'}9.99"
println(price)
属性
lastIndex(最后的下标值),length

常用方法
以下加粗的方法都是kotlin中String新增加的方法

方法 描述
String [index] 取String的指定下标的元素
String first() 取第一个元素
String last() 取最后一个元素
indexOf
indexLastOf
String plus(text) 和“+”效果一样,连接字符串
Boolean equals(text[,ignoreCase]) 第二个参数不写,相当于之前说的“==”比较内容,第二个参数为true,则忽略内容大小写就行比较
String substring(startIndex[,endIndex])
String substringBefore() 截取第一个出现的字符串前面的字符串内容
String substringAfter() 截取第一个出现的字符串后面的字符串内容
String substringBeforeLast() 截取最后一个出现的字符串前面面的字符串内容
String substringAfterLast() 截取最后一个出现的字符串后面的字符串内容
replace() 替换
replaceFirst() 见下面例子
replaceBefore() 见下面例子
replaceAfter() 见下面例子
replaceBeforeLast() 见下面例子
replaceAfterLast() 见下面例子
spilt()
Boolean isBlank() 字符串是否全是空格
Boolean isEmpty() 字符串长度是否为0,为0返回true
String reversed() 字符串反转
String startsWith()
String endsWith()
String trim() 清除空格
String drop(int) 删除头部的几个元素并返回
String dropLast(int) 删除末尾的几个元素并返回
replaceFirst()等:

复制
val text = "kotlin is kotlin"
//第一个kotlin替换为java
println(text.replaceFirst("kotlin", "java"))
//在kotlin之前加上java,替换第一个kotlin
println(text.replaceBefore("kotlin", "java"))
//获取出现kotlin最后一次的下标,截取该下标到末尾的字符串,并在字符串之前添加java
println(text.replaceBeforeLast("kotlin", "java"))

//与上面相反
println(text.replaceAfter("kotlin", "java"))
println(text.replaceAfterLast("kotlin", "java"))
isBlank和isEmpty:

复制
val text = " "
println(text.isBlank())//输出为true
println(text.isEmpty())//输出为fasle
drop和dropLast:

复制
val text = "hello"
println(text.drop(2))//输出为llo
println(text.dropLast(2))//输出为hel
substringBefore等:

复制
val text = "this is starsone"
//截取第一个is之前的内容
println(text.substringBefore("is"))
//截取最后一个is之前的内容
println(text.substringBeforeLast("is"))//注意,这里还包括空格
//截取第一个出现的is后面的内容
println(text.substringAfter("is"))
//截取最后一个出现的is后面的内容
println(text.substringAfterLast("is"))

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
算法学习之路|用C++刷算法会用到的STL(二)——set
用C++刷算法会用到的STL(二)——set
2374 0
[喵咪大数据]Hbase搭建和基本使用
说完了Hive我们接着来看另外一个建立在Hadoop基础上的存储引擎**HBase**,HBase以内存作为缓存数据落地到HDFS的Key-Value数据库,因为使用内存缓存极大保障了数据的实时性和实时查询能力,在实时场景的大数据存储HBase是不可或缺的解决方案,常见又在使用这项技术的业务就是**短链**,比如你在微信给你的朋友发个URL最终你的朋友获取到的是微信的一个短链接(QQ淘宝都是如此),在HBase中就存储了这样一个对应关系,这一切都归功于HBase的吞吐量和实时响应速度.
186 0
如何使用Redis让周期异步任务变得Fault-tolerant且Dynamic
        Python技术栈的同学一定都非常了解Celery——基于消息队列的分布式任务调度系统。(具体用法介绍不在此赘述)。通过Celery可以快速高效的将大规模的任务实时分发到众多的不同的机器上,让用户只关注每个单独任务的处理,而非调度分配任务本身。
723 0
[Android]使用Kotlin开发Android(二)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4829007.html [TOC] 使用Kotlin+OkHttp+RxJava进行网络请求 代码:https://github.
695 0
[Android]使用自定义JUnit Rules、annotations和Resources进行单元测试(翻译)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5795091.html 使用自定义JUnit Rules、annotations和Resources进行单元测试 原文:http://www.thedroidsonroids.com/blog/android/unit-tests-rules-annotations-resources 简介 Unit Test并不只有断言和测试方法组成。
847 0
+关注
幸运券发放
阿里云代金码bieryun.com
303
文章
3
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载