Java布尔型比较大小_Kotlin与Java比较:基础类型

概述

Java中提供了8中基本类型,6种数字类型(四个整数型,两个浮点型),1种字符类型,还有一种布尔型。

Kotlin中所有东西都是对象,它的基本类型包括:布尔值、数字、字符、字符串和数组

基本类型

布尔值

Java

Java中使用boolean作为布尔型,有true和false两种取值。

Kotlin

Kotlin中用Boolean表示布尔类型,其值分别为true与false.

支持与或非三种操作。若需要可空引用,则会被装箱。

数字

Java

支持6中数字类型,分别是byte、short、int、long、double、float.

Kotlin

数字支持用若干内置类型表示,分别是:Double、Float、Long、Int、Short与Byte。

类型

位宽度

Double

64

Float

32

Long

64

Int

32

Short

16

Byte

8

数字字面量支持用下划线表示,让数字更易读

val oneMillion = 1_000_000

同时也支持传统符号表示的浮点数值:

123.5e10

在Java中,我们经常需要进行装箱和非装箱,例如:

Integer i1 = new Integer(1);

int i2 = 1;

但是,Kotlin不区分装箱和非装箱类型,在一般情况下,对于允许为空的类型,编译器会自动对其进行装箱。

数字比较

Java

Java中,使用两个等号 == 比较整数型数字。

注意,不能使用 == 比较浮点数字。 因为编程语言在计算是会有误差,故使用 == 比较是不可靠的。若在要求不是特别精确的场景,可以在比较两浮点数时,两数之差小于一个非常小的范围,即可认为相等。若要在商业场景中做精确计算,建议使用BigDecimal类。

Kotlin

在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。

fun main(args: Array) {

val a: Int = 10000

println(a === a) // true,值相等,对象地址相等

// 创建了两个不同的对象

val boxedA: Int? = a

val anotherBoxedA: Int? = a

//值是相等的,都是10000

println(boxedA === anotherBoxedA) // false,值相等,对象地址不一样

println(boxedA == anotherBoxedA) // true,值相等

}

当使用 == 比较对象时,若两者其一为null,则返回false。若两者均为null,则返回TRUE。

Kotlin中字符不是数字。

字符

Java

Java中字符类型为char,使用单引号括起来的为字符。可以提升为int型。

Kotlin

字符用Char表示,字符字面量要用单引号包围,如:'c'

不同于Java的是,字符不属于数值类型,是一个独立的数据类型。

fun check(c: Char) {

if (c == 1) { // 错误:类型不兼容

// ……

}

}

字符串

Java

字符串类型为String,为不可变类型。

Kotlin

字符串用String表示,索引字符串中的字符用s[i]. Kotlin字符串与Java一样可以用 + 拼接字符串。

在字符串中迭代字符:

for (c in str) {

println(c)

}

字符串字面值分为:转义字符串与原始字符串

转义字符串

与Java字符串类似,在其中可以有诸如\n等转义字符

原始字符串

用三引号包围,内部没有转义,且能包含换行以及其他任意字符

字符串两种字面量都支持字符串模板,模板有两种类型:

变量型

val i = 10

println("i = $i") // 输出“i = 10”

表达式型

val s = "abc"

println("$s.length is ${s.length}") // 输出“abc.length is 3”

字符串长度

val str = "kotlin very good"

// 1. 直接用length属性获取

println("str.length => ${str.length}")

// 2. 用count()函数获取

println("str.count() => ${str.count()}")

字符串查找

查找第一个元素

val str = "kotlin very good"

println(str[0])

println(str.get(0))

println(str.first())

类似的可以通过last查找最后一个元素。其他还有firstOrNull()等函数。

查找对应元素下标

indexOf()

indexLastOf()

字符串截取

val str = "Kotlin is a very good programming language"

println("s = ${str.substring(10)}") // 当只有开始下标时,结束下标为length - 1

println(str.substring(0,15))

println(str.substring(IntRange(0,15)))

类似的还有subSequence()函数,其大致和subString()函数一样,但是其不提供只传递startIndex的情况

字符串替换

replace()函数提供了4个重载函数。

replace(oldChar,newChar,ignoreCase = false)

replace(oldValue,newValue,ignoreCase = false)

replace(regex,replacement)

replace(regex: Regex, noinline transform: (MatchResult) -> CharSequence)

其他的还有诸如replaceBefore(), replaceBeforeLast()等函数

验证字符串

isEmpty() : 其源码是判断其length是等于0,若等于0则返回true,反之返回false。不能直接用于可空的字符串

isNotEmpty() : 其源码是判断其length是否大于0,若大于0则返回true,反之返回false。不能直接用于可空的字符串

isNullOrEmpty() : 其源码是判断该字符串是否为null或者其length是否等于0。

isBlank() : 其源码是判断其length是否等于0,或者判断其包含的空格数是否等于当前的length。不能直接用于可空的字符串

isNotBlank() : 其源码是对isBlank()函数取反。不能直接用于可空的字符串

isNotOrBlank() : 其源码判断该字符串是否为null。或者调用isBlank()函数

数组

Java数组

可以通过如下方式声明数组

dataType[] arrayRefVar; // 首选的方法

dataType arrayRefVar[]; // 效果相同,但不是首选方法

Java支持多维数组。

String str[][] = new String[3][4];

同时Java也提供java.util.Arrays类来操作数组,它提供的所有方法都是静态的。

具有以下功能:

给数组赋值:通过 fill 方法。

对数组排序:通过 sort 方法,按升序。

比较数组:通过 equals 方法比较数组中元素值是否相等。

查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

Kotlin数组

用Array表示,定义了get、set与size方法。由于使用 [] 重载了 get 和 set 方法,所以我们可以通过下标很方便的获取或者设置数组对应位置的值。Array为不可变类型。

创建数组可通过arrayOf或Array构造函数。

fun main(args: Array) {

//[1,2,3]

val a = arrayOf(1, 2, 3)

//[0,2,4]

val b = Array(3, { i -> (i * 2) })

//读取数组内容

println(a[0]) // 输出结果:1

println(b[1]) // 输出结果:2

}

原生数组

Kotlin也提供了无装箱开销的原生数组,IntArray,ByteArray,ShortArray。与Array没有继承关系。使用intArrayOf()进行初始化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值