人不走空
🌈个人主页:人不走空****
💖系列专栏:算法专题****
**⏰诗词歌赋:**斯是陋室,惟吾德馨
Kotlin基本数值类型
基本数据类型包括 Byte、Short、Int、Long、Float、Double
整数类型
类型 | 位宽 | 最小值 | 最大值 |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) |
Long | 64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) |
val number = 100 //默认是 Int 类型
val bigNumber = 8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber = 20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1
Tips
所有未超出 Int
最大值的整型值初始化的变量都默认为Int
类型,如果初始值超过了其最大值,那么推断为Long
类型。在数字值后面显式添加L
表示一个Long
类型
Float、Double浮点类型
Kotlin 中提供了 Float
和 Double
两种类型来分别表示单精度和双精度的浮点数类型。
类型 | 位宽 |
---|---|
Float | 32 |
Double | 64* |
val doubleNumber = 3.1415928888 //默认是Double类型
val floatNumber = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数
Tips
Kotlin 对于小数的默认推断是Double
类型。如果需要显式将一个小数指定为Float
类型需要在数值尾部加入f
或F
。由于Float
类型十进制位数是6位
,所以上述例子中floatNumber
实际值大小为3.1415926
,后面就会出现进度丢失舍弃。
在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double
的函数只能接收 Double
类型,不能接收 Float
、Int
或者其他数字类型
字符类型
在 Kotlin 中字符用 Char
类型表示
fun testChar(char: Char) {
if(char == 4) {...}//此处会提示类型不匹配的异常
}
字符的值需要用单引号括起来: '0'
、'9'
。
fun decimalDigitValue(c: Char): Int {
if (c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型
在 Kotlin 使用Boolean
表示布尔类型,它只有两个值 true
和 false
。注意可空类型Boolean?
类型会存在装箱操作。
val isVisible: Boolean = false
val isVisible = false //自动推断为布尔Boolean类型
字符串类型
在 Kotlin 中字符串用 String
类型表示。字符串是不可变的。 字符串的元素------字符可以使用索引运算符访问: s[i]
。 可以用 for 循环迭代字符串:
val str="1234567890"
for(char in str) {
println(char)
}
字符串模板
字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($
)开头,由一个简单的名字构成:
val number = 100
println("The Result is $number")
或者用花括号${}
括起来的任意表达式:
val text = "This is Text"
println("Text length is ${text.length}")
字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $
字符(它不支持反斜杠转义),你可以用下列语法:
val price = "${'$'}9.99"
和 Java 一样,Kotlin 可以用 +
操作符连接字符串。这也适用于连接字符串与其他类型的值。
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")
字符串的值
Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:
val s = "Hello, world!\n" // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式
字符串使用三个引号("""
)分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:
val text = """
for (c in "foo")
print(c)
"""
还可以通过 trimMargin() 函数去除前导空格:
val text = """
|Tell me and I forget.
|Teach me and I remember.
|{"key1": "value1"}
|{"key2": "value2"}
""".trimMargin()
类型强制转换
在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat
之类函数来实现数字类型的强制转换的。
类型 | 强转函数 |
---|---|
Byte | toByte() |
Short | toShort() |
Int | toInt() |
Long | toLong() |
Float | toFloat() |
Double | toDouble() |
Char | toChar() |
val number =100 //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....
数字运算
四则运算
除法/
:
val number = 3 / 2
println(number) // 输出 1
val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5
乘法*
:
val number = 3 * 2
println(number) // 输出 6
加法+
:
val number = 3 + 2
println(number) // 输出 5
减法-
:
val number = 3 - 2
println(number) // 输出 1
取余%
:
val number = 3 % 2
println(number) // 输出 1
位运算
Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。
-
shl(bits)
-- 有符号左移【shl是Shift Logical Left的缩写】 -
shr(bits)
-- 有符号右移 -
ushr(bits)
-- 无符号右移 -
and(bits)
-- 位与 -
or(bits)
-- 位或 -
inv()
-- 位非 -
xor(bits)
-- 位异或val vip= true
val admin= falseval result = vip and(admin) =false
val result = 8 ushr(2) = 2
AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
<option name="delegatedBuild" value="false" />
Kotlin基本数值类型
基本数据类型包括 Byte、Short、Int、Long、Float、Double
整数类型
类型 | 位宽 | 最小值 | 最大值 |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) |
Long | 64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) |
val number = 100 //默认是 Int 类型
val bigNumber = 8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber = 20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1
Tips
所有未超出 Int
最大值的整型值初始化的变量都默认为Int
类型,如果初始值超过了其最大值,那么推断为Long
类型。在数字值后面显式添加L
表示一个Long
类型
Float、Double浮点类型
Kotlin 中提供了 Float
和 Double
两种类型来分别表示单精度和双精度的浮点数类型。
类型 | 位宽 |
---|---|
Float | 32 |
Double | 64 |
val doubleNumber = 3.1415928888 //默认是Double类型
val floatNumber = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数
Tips
Kotlin 对于小数的默认推断是Double
类型。如果需要显式将一个小数指定为Float
类型需要在数值尾部加入f
或F
。由于Float
类型十进制位数是6位
,所以上述例子中floatNumber
实际值大小为3.1415926
,后面就会出现进度丢失舍弃。
在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double
的函数只能接收 Double
类型,不能接收 Float
、Int
或者其他数字类型
字符类型
在 Kotlin 中字符用 Char
类型表示
fun testChar(char: Char) {
if(char == 4) {...}//此处会提示类型不匹配的异常
}
字符的值需要用单引号括起来: '0'
、'9'
。
fun decimalDigitValue(c: Char): Int {
if (c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型
在 Kotlin 使用Boolean
表示布尔类型,它只有两个值 true
和 false
。注意可空类型Boolean?
类型会存在装箱操作。
val isVisible: Boolean = false
val isVisible = false //自动推断为布尔Boolean类型
字符串类型
在 Kotlin 中字符串用 String
类型表示。字符串是不可变的。 字符串的元素------字符可以使用索引运算符访问: s[i]
。 可以用 for 循环迭代字符串:
val str="1234567890"
for(char in str) {
println(char)
}
字符串模板
字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($
)开头,由一个简单的名字构成:
val number = 100
println("The Result is $number")
或者用花括号${}
括起来的任意表达式:
val text = "This is Text"
println("Text length is ${text.length}")
字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $
字符(它不支持反斜杠转义),你可以用下列语法:
val price = "${'$'}9.99"
和 Java 一样,Kotlin 可以用 +
操作符连接字符串。这也适用于连接字符串与其他类型的值。
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")
字符串的值
Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:
val s = "Hello, world!\n" // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式
字符串使用三个引号("""
)分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:
val text = """
for (c in "foo")
print(c)
"""
还可以通过 trimMargin() 函数去除前导空格:
val text = """
|Tell me and I forget.
|Teach me and I remember.
|{"key1": "value1"}
|{"key2": "value2"}
""".trimMargin()
类型强制转换
在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat
之类函数来实现数字类型的强制转换的。
类型 | 强转函数 |
---|---|
Byte | toByte() |
Short | toShort() |
Int | toInt() |
Long | toLong() |
Float | toFloat() |
Double | toDouble() |
Char | toChar() |
val number =100 //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....
数字运算
四则运算
除法/
:
val number = 3 / 2
println(number) // 输出 1
val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5
乘法*
:
val number = 3 * 2
println(number) // 输出 6
加法+
:
val number = 3 + 2
println(number) // 输出 5
减法-
:
val number = 3 - 2
println(number) // 输出 1
取余%
:
val number = 3 % 2
println(number) // 输出 1
位运算
Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。
-
shl(bits)
-- 有符号左移【shl是Shift Logical Left的缩写】 -
shr(bits)
-- 有符号右移 -
ushr(bits)
-- 无符号右移 -
and(bits)
-- 位与 -
or(bits)
-- 位或 -
inv()
-- 位非 -
xor(bits)
-- 位异或val vip= true
val admin= falseval result = vip and(admin) =false
val result = 8 ushr(2) = 2
AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
<option name="delegatedBuild" value="false" />
Kotlin基本数值类型
基本数据类型包括 Byte、Short、Int、Long、Float、Double
整数类型
类型 | 位宽 | 最小值 | 最大值 |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) |
Long | 64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) |
val number = 100 //默认是 Int 类型
val bigNumber = 8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber = 20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1
Tips
所有未超出 Int
最大值的整型值初始化的变量都默认为Int
类型,如果初始值超过了其最大值,那么推断为Long
类型。在数字值后面显式添加L
表示一个Long
类型
Float、Double浮点类型
Kotlin 中提供了 Float
和 Double
两种类型来分别表示单精度和双精度的浮点数类型。
类型 | 位宽 |
---|---|
Float | 32 |
Double | 64 |
val doubleNumber = 3.1415928888 //默认是Double类型
val floatNumber = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数
Tips
Kotlin 对于小数的默认推断是Double
类型。如果需要显式将一个小数指定为Float
类型需要在数值尾部加入f
或F
。由于Float
类型十进制位数是6位
,所以上述例子中floatNumber
实际值大小为3.1415926
,后面就会出现进度丢失舍弃。
在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double
的函数只能接收 Double
类型,不能接收 Float
、Int
或者其他数字类型
字符类型
在 Kotlin 中字符用 Char
类型表示
fun testChar(char: Char) {
if(char == 4) {...}//此处会提示类型不匹配的异常
}
字符的值需要用单引号括起来: '0'
、'9'
。
fun decimalDigitValue(c: Char): Int {
if (c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型
在 Kotlin 使用Boolean
表示布尔类型,它只有两个值 true
和 false
。注意可空类型Boolean?
类型会存在装箱操作。
val isVisible: Boolean = false
val isVisible = false //自动推断为布尔Boolean类型
字符串类型
在 Kotlin 中字符串用 String
类型表示。字符串是不可变的。 字符串的元素------字符可以使用索引运算符访问: s[i]
。 可以用 for 循环迭代字符串:
val str="1234567890"
for(char in str) {
println(char)
}
字符串模板
字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($
)开头,由一个简单的名字构成:
val number = 100
println("The Result is $number")
或者用花括号${}
括起来的任意表达式:
val text = "This is Text"
println("Text length is ${text.length}")
字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $
字符(它不支持反斜杠转义),你可以用下列语法:
val price = "${'$'}9.99"
和 Java 一样,Kotlin 可以用 +
操作符连接字符串。这也适用于连接字符串与其他类型的值。
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")
字符串的值
Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:
val s = "Hello, world!\n" // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式
字符串使用三个引号("""
)分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:
val text = """
for (c in "foo")
print(c)
"""
还可以通过 trimMargin() 函数去除前导空格:
val text = """
|Tell me and I forget.
|Teach me and I remember.
|{"key1": "value1"}
|{"key2": "value2"}
""".trimMargin()
类型强制转换
在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat
之类函数来实现数字类型的强制转换的。
类型 | 强转函数 |
---|---|
Byte | toByte() |
Short | toShort() |
Int | toInt() |
Long | toLong() |
Float | toFloat() |
Double | toDouble() |
Char | toChar() |
val number =100 //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....
数字运算
四则运算
除法/
:
val number = 3 / 2
println(number) // 输出 1
val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5
乘法*
:
val number = 3 * 2
println(number) // 输出 6
加法+
:
val number = 3 + 2
println(number) // 输出 5
减法-
:
val number = 3 - 2
println(number) // 输出 1
取余%
:
val number = 3 % 2
println(number) // 输出 1
位运算
Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。
-
shl(bits)
-- 有符号左移【shl是Shift Logical Left的缩写】 -
shr(bits)
-- 有符号右移 -
ushr(bits)
-- 无符号右移 -
and(bits)
-- 位与 -
or(bits)
-- 位或 -
inv()
-- 位非 -
xor(bits)
-- 位异或val vip= true
val admin= falseval result = vip and(admin) =false
val result = 8 ushr(2) = 2
AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
<option name="delegatedBuild" value="false" />
作者其他作品:
OpenAI Sora来了,视频生成领域的GPT-4时代来了
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读