本文适合有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常用方法使用的更多相关文章

  1. Kotlin学习快速入门(7)——扩展的妙用

    原文地址: Kotlin学习快速入门(7)--扩展的妙用 - Stars-One的杂货小窝 之前也模模糊糊地在用这个功能,也是十分方便,可以不用继承,快速给某个类增加新的方法,本篇便是来讲解下Kotl ...

  2. Kotlin学习快速入门(4)——集合使用

    List,Set,Map都是集合 List 是一个有序集合,可通过索引(反映元素位置的整数)访问元素.元素可以在 list 中出现多次.列表的一个示例是一句话:有一组字.这些字的顺序很重要并且字可以重 ...

  3. Kotlin学习快速入门(2)——条件 数组 循环 方法

    条件 if条件判断 常用的判断和Java一样,这里提一下不同的用法 1.if可以作为三元运算符 val max = if (a > b) a else b 2.使用in判断是否在某个区间 val ...

  4. Kotlin学习快速入门(3)——类 继承 接口

    类 参考链接 类定义格式 使用class关键字定义,格式如下: class T{ //属性 //构造函数 //函数 //内部类 } Java Bean类 java bean类 //java bean类 ...

  5. Kotlin学习快速入门(5)——空安全

    介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 ...

  6. pytest学习--快速入门

    一.pytest简介 Pytest是python的一种单元测试框架. pytest的特点: 入门简单,文档丰富 支持单元测试,功能测试 支持参数化,重复执行,部分执行,测试跳过 兼容其他测试框架(no ...

  7. pytorch入门--土堆深度学习快速入门教程

    工具函数 dir函数,让我们直到工具箱,以及工具箱中的分隔区有什么东西 help函数,让我们直到每个工具是如何使用的,工具的使用方法 示例:在pycharm的console环境,输入 import t ...

  8. Python学习-------变量和简单的数据类型(String)

    1.变量命名和使用 变量命名规则:a.变量名只能包含(字母    数字   下划线),且变量不能以数字开头,例如:变量 s_1(正确),变量1_s(错误) b.变量名不能包含空格,可以使用下划线来间隔 ...

  9. Redis学习笔记(三)-数据类型之string类型

    string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...

随机推荐

  1. python中的while循环,格式化输出,运算符,编码

    一.while循环 1.1语法 while 条件: 代码块(循环体) else: 当上面的条件为假的的时候,才会执行. 执行顺序:先判断条件是否为真,如果是真的,执行循环体,再次判断条件,直到条件不成 ...

  2. java设计模式-原型(prototype)

    有时候创建对象是需要耗费很多资源,但是每个对象之间又有大量的重复.我们可以选择在创建好一个对象后,以之作为模板克隆出其他对象,稍作修改,即可用于其他地方. 需要实现Cloneable接口,重写clon ...

  3. 理解call(),apply(),bind()

    三者皆是修改this指向call(this指向,参数,参数,参数...) ====>深研究:https://developer.mozilla.org/zh-CN/docs/Web/JavaSc ...

  4. windows环境利用hexo+github搭建个人博客

    一.下载安装Git 下载地址:https://gitforwindows.org/ 二.下载安装node.js 下载地址:https://nodejs.org/en/ 三.安装hexo 利用 npm ...

  5. Django之Cookie Session详解,CBV,FBV登陆验证装饰器和自定义分页

    Cookie Session和自定义分页   cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接 ...

  6. Programming In Lua 第八章

    1, 也就是说,lua虽然会把代码预编译成中间码,以提高运行速度.但其会在程序运行过程中需要编译器,所以其仍然是解释型语言.loadfile会加载一个文件并将其编译成中间码,并返回一个函数. 2, 3 ...

  7. shell写的俄罗斯方块

    共享一下. #!/bin/bash # Tetris Game # xhchen<[email]xhchen@winbond.com.tw[/email]> #APP declaratio ...

  8. 跟着大彬读源码 - Redis 2 - 服务器如何响应客户端请求?(上)

    上次我们通过问题"启动服务器,程序都干了什么?",跟着源码,深入了解了 Redis 服务器的启动过程. 既然启动了 Redis 服务器,那我们就要连上 Redis 服务干些事情.这 ...

  9. 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  10. c++学习书籍推荐《清华大学计算机系列教材:数据结构(C++语言版)(第3版)》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <清华大学计算机系列教材:数据结构(C++语言版)(第3版)>习题解析涵盖验证型.拓展型.反思型.实践型和研究型习题,总计290余道大题.525道 ...