Array<String>中按照字符串转为整数的大小排序,使用kotlin
时间: 2024-02-21 22:57:46 浏览: 23
同样可以使用Kotlin中的sortedWith方法和自定义比较器来实现按照字符串转为整数的大小排序。具体代码如下:
```
fun main() {
val arr = arrayOf("10", "2", "31", "45", "6", "7", "8", "9")
val sortedArr = arr.sortedWith(Comparator { s1, s2 ->
val i1 = s1.toInt()
val i2 = s2.toInt()
i1 - i2
})
println(sortedArr.contentToString())
}
```
输出结果为:[2, 6, 7, 8, 9, 10, 31, 45]
相关问题
在kotlin中,array和Intarray有什么区别
Kotlin中的Array和IntArray都是数组类型,但是它们有一些区别。
Array是一个泛型类型,可以存储任意类型的元素,包括可空类型。它的声明方式为:
```kotlin
var array: Array<T> = arrayOf()
```
其中,T表示元素类型。例如,可以声明一个字符串数组:
```kotlin
var strArray: Array<String> = arrayOf("Hello", "World")
```
IntArray是一个专门用于存储整数的数组类型。它的声明方式为:
```kotlin
var intArray: IntArray = intArrayOf()
```
其中,Int表示元素类型。例如,可以声明一个整数数组:
```kotlin
var numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)
```
Int和Array有一个重要的区别,就是在内存中存储数据的方式不同。IntArray是一个原始类型数组,它直接存储整数的二进制表示。而Array是一个对象数组,它存储的是对象的引用。这意味着,IntArray的存储效率更高,但是只能存储整数,而Array可以存储任意类型的对象。
另外需要注意的一点是,IntArray和Array之间不能直接进行赋值操作,因为它们是不同类型的数组,需要进行类型转换。
kotlin中switch
kotlin中的switch语句被称为when语句,它可以接受任意类型的参数,而不仅仅是整数或枚举类型。下面是一个简单的when语句的示例:
```
fun main(args: Array<String>) {
val x = 3
when (x) {
1 -> println("x is 1")
2 -> println("x is 2")
else -> println("x is neither 1 nor 2")
}
}
```
在这个示例中,我们使用when语句来检查x的值,并根据它的值执行不同的操作。当x等于1时,我们打印"x is 1",当x等于2时,我们打印"x is 2",否则我们打印"x is neither 1 nor 2"。
除了检查值之外,when语句还可以检查表达式的类型,以及表达式是否满足某些条件。下面是一个演示这些功能的示例:
```
fun main(args: Array<String>) {
val x: Any = "hello"
when (x) {
is String -> println("x is a string")
!is String -> println("x is not a string")
"hello" -> println("x is the string 'hello'")
else -> println("x is something else")
}
}
```
在这个示例中,我们定义了一个Any类型的变量x,并使用when语句来检查它的类型和值。当x是一个字符串时,我们打印"x is a string",当x不是一个字符串时,我们打印"x is not a string"。当x等于"hello"时,我们打印"x is the string 'hello'",否则我们打印"x is something else"。
总的来说,when语句是一个非常灵活和强大的语言结构,可以帮助我们编写更简洁和易于理解的代码。