Kotlin Cases(完结)
Shawn qq:121857051
转载请留情
- IDE: IntelliJ IDEA 2018.2.3
- Kotlin: 1.3.0-release-IJ2018.2-1
- JDK: 1.8.0_161
经过了近一个月的编写更新,我认为这篇文章给新手拿来入门应该算是可以了。
这70余个实例如果能挨个手码一遍,我相信任何新手都是能入门的吧。
学习一门编程语言,其实最重要的是英语水平(笑)。
如果你的英语水平还可以,其实大部分编程语言是可以不学习就能粗略读懂的。
当然,如果你有编程基础,了解基本的模式,那么学习一门语言的速度就可以更快,比如一个java程序员估计只用一个小时就能基本熟练使用Kotlin吧
这篇文章如果有任何错误、纰漏,请直接提出,我会及时更正。
https://blog.csdn.net/weixin_41084236/article/details/83308910
强烈推荐Kotlin官方文档
代码见github
注: 本文中实例部分参考于 runoobJava实例
Kotlin入门实例
- Kotlin Cases(完结)
-
- 1 字符串
- 2 数组
-
- 2.1 数组排序以及二分查找 ArraysSortAndSearch
- 2.2 添加元素 ArraysInsert
- 2.3 数组长度 ArraysLength
- 2.4 数组反转 ArraysReverse
- 2.5 数组极值 ArraysMaxAndMin
- 2.6 数组合并 ArraysMerge
- 2.7 数组填充 ArraysFill
- 2.8 数组扩展 ArraysExtend
- 2.9 查找数组中的重复元素 ArraysDuplicates
- 2.10 删除元素 ArraysRemove
- 2.11 差集 ArraysRemoveAll
- 2.12 交集 ArraysRetainAll
- 2.13 查找元素 ArraysSearch
- 2.14 数组相等 ArraysEquals
- 2.15 并集 ArraysUnionSet
- 3 时间
- 4 类与对象
- 5 流程控制
- 6 异常 Exception
- 7 运算符重载
- 8 代码文档 KDoc
- 9 并发
- 10 高级函数
- PLUS 小技巧
- November 19, 2018 : update_ComposeApplyAndAlso
- November 19, 2018 : update_ComposeRun
- November 19, 2018 : update_ComposeWith
- November 19, 2018 : update_ComposeLet
- November 15, 2018 : update_ComposeFilter
- November 15, 2018 : update_ComposeFold
- November 14, 2018 : update_ComposeReduce
- November 13, 2018 : update_ComposeFlapMap
- November 12, 2018 : update_ComposeMap
- November 09, 2018 : update_Compose
- November 08, 2018 : update_Null
- November 07, 2018 : update_Component
- November 06, 2018 : update_Closure
- November 05, 2018 : update_Thread
- November 02, 2018 : update_This
- November 01, 2018 : update_Typealias
- November 01, 2018 : update_KDoc
- October 31, 2018 : update_DataClassAndSealedClass
- October 30, 2018 : update_TipsInfix
- October 29, 2018 : update_OperatorOverload
- October 26, 2018 : update_TipsRefEqual
- October 25, 2018 : update_TipsCases
- October 24, 2018 : update_ClassCases
1 字符串
1.1 字符串比较 StringCompare
- 功能: 通过compareTo和equals比较两个字符串
- 介绍: compareTo会比较两个字符串的首字母(字典序),equals会比较两个字符串,两个方法均有可选忽视大小写的参数.
fun main(args: Array<String>) {
var str : String = "Hello World"
var str1 : String = "Hello World"
var str2 : String = "hello World"
println(str.compareTo(str1))
println(str.compareTo(str2))
println(str.compareTo(str2,true))
println(str.equals(str1))
println(str.equals(str2))
println(str.equals(str2,true))
}
1.2 查找最后一次出现位置 StringLastIndexOf
- 功能: 通过lastIndexOf查找给定字符串在目标字符串最后一次出现的位置.
- 介绍:
- lastIndexOf是从后向前查找的.
- startIndex参数可以指定从哪里开始向前查找.
- 传递参数可以按位置传递,也可以按参数名传递.
fun main(args: Array<String>) {
var str : String = "Hello, handsome boy."
var str1: String = "boy? I am not a boy!"
var lastHandsome : Int = str.lastIndexOf("handsome")
var lastBoy : Int = str.lastIndexOf("BoY",ignoreCase = true,startIndex = str.length)
var lastBoyInStr1 : Int = str1.lastIndexOf("boy",str1.length-5,true)
println("The last index of \"handsome\" is "+lastHandsome)
println("The last index of \"boy\" is "+lastBoy)
println("Now I ignore the last 5 chr in str1: "+lastBoyInStr1)
}
1.3 删除字符 StringRemoveChr
- 功能: 做一个函数来实现删除字符串给定位置的字符.
- 介绍:
- 构建返回非空函数的时候最好先声明返回类型.
- PHP可能不是最好的语言.
fun main(args: Array<String>) {
var str : String = "PHP, the best language."
println(removeCharAt(str,1))
}
fun removeCharAt(s:String,pos:Int): String{
return s.substring(0,pos)+s.substring(pos+1)
}
1.4 反转字符串 StringReverse
- 功能: 反转字符串
- 介绍: 无
fun main(args: Array<String>) {
var str : String = "Shawn"
var strReversed : String = str.reversed()
println(str)
println(strReversed)
}
1.5 查找字符串 StringIndexOf
- 功能: indexOf搜索字符串出现的位置.
- 介绍: 正向搜索,参考1.2,若没找到则返回-1.
fun main(args: Array<String>) {
var str : String = "Python CPP Java Ruby Kotlin"
printPos(str.indexOf("python"))
printPos(str.indexOf("python",ignoreCase = true))
printPos(str.indexOf("Java"))
}
fun printPos(pos:Int){
if(pos == -1){
println("Do not find that string.")
}
else
{
println("Find that string in "+pos)
}
}
1.6 字符串分割 StringSplit
- 功能: 通过split分割字符串
- 介绍:
- split可以指定以特定标志等来分割字符串
- kotlin在创建对象的时候有一定的猜测(类型)能力
fun main(args: Array<String>) {
var str : String = "Shawn-handsome-python-best"
var splited : List<String> = str.split("-")
println(splited)
}
1.7 字符串大小写 StringUpperAndLower
- 功能: 通过upper和lower可以将字符串做大小写变换
- 介绍: 无
fun main(args: Array<String>) {
var str = "Shawn"
println(str.toUpperCase())
println(str.toLowerCase())
}
1.8 字符串区域匹配 StringRegionMatch
- 功能: 通过regionMatches来确定两个字符串给定区域是否相同
- 介绍:
- 第四行翻译一下: 从str1的第4位与str2的第4位开始数,2位是否都相等.
- 同样支持ignoreCases
fun main(args: Array<String>) {
var str1 = "php Is the best."
var str2 = "who is your daddy?"
println(str1.regionMatches(4,str2,4,2))
println(str1.regionMatches(4,str2,4,2,true))
}
1.9 字符串格式化 StringFormat
- 功能: 使用字符串格式化
- 介绍: kotlin中直接调用java的函数也是ok的.
import java.util.*
fun main(args: Array<String>) {
var e = Math.E
System.out.format("%f%n",e)
System.out.format(Locale.CHINA, "%-10.4f%n%n", e)
}
1.10 连接字符串 StringAppend
- 功能: 用+连接字符串
- 介绍: 无
fun main(args: Array<String>) {
var str1 = "No gods "
var str2 = "Or kings "
var str3 = "Only man!"
println(str1+str2+str3)
}
2 数组
2.1 数组排序以及二分查找 ArraysSortAndSearch
- 功能: 数组的排序\搜索
- 介绍:
- kotlin中生成整数数组用intArrayOf
- 生成Array可以用arrayOf来进行.
fun main(args: Array<String>) {
var array = intArrayOf(1,5,2,3,9,1)
print("Original: ")
printIntArray(array)
array.sort()
print("Sorted: ")
printIntArray(array)
println("'5' in the position: "+array.binarySearch(5))
}
fun printIntArray(intArray: IntArray){
for(i in intArray){
print(" "+i)
}
println()
}
2.2 添加元素 ArraysInsert
- 功能: 生成ArrayList并向其中添加元素.
- 介绍: 如果函数返回为空,可以声明Unit(也可以什么都不写)
fun main(args: Array<String>) {
var array = arrayListOf(1,2,3,4,"dog")
array.add(2.3)
array.add(true)
printArrayList(array)
}
public fun printArrayList(arrayList: ArrayList<out Any>):Unit{
for(i in arrayList){
println(i.toString())
}
}
2.3 数组长度 ArraysLength
- 功能: 获取数组的长度
- 介绍: 无
fun main(args: Array<String>) {
var array : Array<Any> = Array<Any>(4,{
9})
array.set(0,1)
array.set(1,"hop")
for(i in array){
println(i)
}
println("The length of array is "+array.size)
}
2.4 数组反转 ArraysReverse
- 功能: 反转数组
- 介绍: reverse可以直接将ArrayList反转.
fun main(args: Array<String>) {
var array = arrayListOf<Any>(1,2,3,4,5)
array.reverse()
printArrayList(array)//from ArraysInsert.kt
}
2.5 数组极值 ArraysMaxAndMin
- 功能: 获得数组的极值
- 介绍: 数组的max和min可以直接获得.
fun main(args: Array<String>) {
var array = intArrayOf(2,3,1,6,-1,6,99)
println("The maximum of array is "+array.max())
println("The minimum of array is "+array.min())
}
2.6 数组合并 ArraysMerge
- 功能: 将两个数组合并
- 介绍: array和list可以直接用相加进行合并
fun main(args: Array<String>) {
var array1 : Array<String> = arrayOf("S","h","a")
var array2 : Array<String> = arrayOf("w","n")
var list = array1.asList()
list+=array2.asList()
println(list)
array1+=array2
printArray(array1)
}
public fun printArray(array:Array<out Any>){
for (i in array){
println(i)
}
}
2.7 数组填充 ArraysFill
- 功能: 初始化一个指定大小的数组,并用指定数字填充
- 介绍: printIntArray见ArraysSortAndSearch
fun main(args: Array<String>) {
var array = IntArray(6)
array.fill(2)
printIntArray(array)
}
2.8 数组扩展 ArraysExtend
- 功能: 扩展数组
- 介绍: 创造一个容量合适的新数组,然后将需要的数据拷进去.
fun main(args: Array<String>) {
var array = intArrayOf(1,2,3)
var arrayExtended = IntArray(5)
printIntArray(arrayExtended)
arrayExtended[3] = 4
arrayExtended[4] = 5
System.arraycopy(array,0,arrayExtended,0,array.size)
printIntArray(arrayExtended)
}
2.9 查找数组中的重复元素 ArraysDuplicates
- 功能: 查找重复元素
- 介绍: kotlin的in操作可以很轻松胜任这个工作
fun main(args: Array<String>) {
var array = intArrayOf(1,1,2,3,4,4,5,5,5,5,6,7,8,8,1,1,9,9)
var dup = ArrayList<Int>()
for (i in 0 until array.size-1<