Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用
本文适合有Java基础的人
Kotlin语法特点
相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获
主函数
kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之前的java那般,还要定义个类,写上main方法
fun main(args: Array<String>) {
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 world\n"
println(str)
特殊用法
//里面的\n也会打印出来
val str = """hello world\n"""
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 s = "this is starsone"
//替换第一个is之前的内容
println(s.replaceBefore("is", "are"))//输出为areis is starsone
//替换第一个is之后的内容
println(s.replaceAfter("is", "are"))//输出为thisare
//替换最后一个is之前的内容
println(s.replaceBeforeLast("is", "are"))//输出为areis starsone
//替换最后一个is之后的内容
println(s.replaceAfterLast("is", "are"))//输出为this isare
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"))
参考链接 关于字符串(String)常用操作汇总
kotlin text(有关于string的各种方法介绍)
kotlin api文档
菜鸟教程 kotlin基本类型
Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用的更多相关文章
- Kotlin学习快速入门(7)——扩展的妙用
原文地址: Kotlin学习快速入门(7)--扩展的妙用 - Stars-One的杂货小窝 之前也模模糊糊地在用这个功能,也是十分方便,可以不用继承,快速给某个类增加新的方法,本篇便是来讲解下Kotl ...
- Kotlin学习快速入门(4)——集合使用
List,Set,Map都是集合 List 是一个有序集合,可通过索引(反映元素位置的整数)访问元素.元素可以在 list 中出现多次.列表的一个示例是一句话:有一组字.这些字的顺序很重要并且字可以重 ...
- Kotlin学习快速入门(2)——条件 数组 循环 方法
条件 if条件判断 常用的判断和Java一样,这里提一下不同的用法 1.if可以作为三元运算符 val max = if (a > b) a else b 2.使用in判断是否在某个区间 val ...
- Kotlin学习快速入门(3)——类 继承 接口
类 参考链接 类定义格式 使用class关键字定义,格式如下: class T{ //属性 //构造函数 //函数 //内部类 } Java Bean类 java bean类 //java bean类 ...
- Kotlin学习快速入门(5)——空安全
介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 ...
- pytest学习--快速入门
一.pytest简介 Pytest是python的一种单元测试框架. pytest的特点: 入门简单,文档丰富 支持单元测试,功能测试 支持参数化,重复执行,部分执行,测试跳过 兼容其他测试框架(no ...
- pytorch入门--土堆深度学习快速入门教程
工具函数 dir函数,让我们直到工具箱,以及工具箱中的分隔区有什么东西 help函数,让我们直到每个工具是如何使用的,工具的使用方法 示例:在pycharm的console环境,输入 import t ...
- Python学习-------变量和简单的数据类型(String)
1.变量命名和使用 变量命名规则:a.变量名只能包含(字母 数字 下划线),且变量不能以数字开头,例如:变量 s_1(正确),变量1_s(错误) b.变量名不能包含空格,可以使用下划线来间隔 ...
- Redis学习笔记(三)-数据类型之string类型
string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...
随机推荐
- python中的while循环,格式化输出,运算符,编码
一.while循环 1.1语法 while 条件: 代码块(循环体) else: 当上面的条件为假的的时候,才会执行. 执行顺序:先判断条件是否为真,如果是真的,执行循环体,再次判断条件,直到条件不成 ...
- java设计模式-原型(prototype)
有时候创建对象是需要耗费很多资源,但是每个对象之间又有大量的重复.我们可以选择在创建好一个对象后,以之作为模板克隆出其他对象,稍作修改,即可用于其他地方. 需要实现Cloneable接口,重写clon ...
- 理解call(),apply(),bind()
三者皆是修改this指向call(this指向,参数,参数,参数...) ====>深研究:https://developer.mozilla.org/zh-CN/docs/Web/JavaSc ...
- windows环境利用hexo+github搭建个人博客
一.下载安装Git 下载地址:https://gitforwindows.org/ 二.下载安装node.js 下载地址:https://nodejs.org/en/ 三.安装hexo 利用 npm ...
- Django之Cookie Session详解,CBV,FBV登陆验证装饰器和自定义分页
Cookie Session和自定义分页 cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接 ...
- Programming In Lua 第八章
1, 也就是说,lua虽然会把代码预编译成中间码,以提高运行速度.但其会在程序运行过程中需要编译器,所以其仍然是解释型语言.loadfile会加载一个文件并将其编译成中间码,并返回一个函数. 2, 3 ...
- shell写的俄罗斯方块
共享一下. #!/bin/bash # Tetris Game # xhchen<[email]xhchen@winbond.com.tw[/email]> #APP declaratio ...
- 跟着大彬读源码 - Redis 2 - 服务器如何响应客户端请求?(上)
上次我们通过问题"启动服务器,程序都干了什么?",跟着源码,深入了解了 Redis 服务器的启动过程. 既然启动了 Redis 服务器,那我们就要连上 Redis 服务干些事情.这 ...
- 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- c++学习书籍推荐《清华大学计算机系列教材:数据结构(C++语言版)(第3版)》下载
百度云及其他网盘下载地址:点我 编辑推荐 <清华大学计算机系列教材:数据结构(C++语言版)(第3版)>习题解析涵盖验证型.拓展型.反思型.实践型和研究型习题,总计290余道大题.525道 ...