首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么空字符串上的kotlin split()和map( string ::toInt)得到NumberFormatException?

空字符串上的split()函数将返回一个空的字符串数组。而在Kotlin中,map()函数会将函数应用于集合中的每个元素,并将结果作为一个新的集合返回。所以当我们在空字符串上调用split()函数后,map()函数实际上是在一个空集合上操作,因此不会执行任何操作。

然而,当我们在空字符串上调用split()函数后再调用map()函数并尝试将每个元素转换为整数时,会抛出NumberFormatException异常。这是因为对于空字符串来说,它不包含任何有效的整数值,因此无法将其转换为整数。

对于这种情况,我们应该在调用map()函数之前先检查字符串数组是否为空,以避免出现异常。以下是一个示例代码:

代码语言:txt
复制
val str = ""
val nums = str.split(",").filter { it.isNotBlank() }.map { it.toInt() }

在上面的代码中,我们使用split(",")来将空字符串分割为字符串数组,并使用filter { it.isNotBlank() }来过滤掉空字符串。然后,我们使用map { it.toInt() }将每个非空字符串转换为整数。这样,我们就可以避免在空字符串上调用toInt()函数时出现NumberFormatException异常。

在腾讯云的相关产品中,可以考虑使用云函数(Serverless Cloud Function)来处理字符串的分割和转换操作。云函数是一种无需管理服务器即可运行代码的计算服务,适用于处理短暂的计算任务。您可以通过云函数来编写和执行具体的业务逻辑,实现字符串的分割和转换等操作。

更多关于腾讯云云函数的信息,请访问腾讯云官方文档:云函数产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Kotlin学习日志(二)数据类型

    基本数据类型名称 Kotlin数据类型 Java数据类型 整型 Int int Integer 长整型 Long long Long 浮点型 Float float Float 双精度...Double double Double 布尔类型 Boolean boolean Boolean 字符型 Char char 字符串 String String 这样就很立体了吧,请注意小写大写区别...1.2变量转换 Kotlin中进行数据转换Java中不同,就不一一对比了,直接说Kotlin中如何进行数据类型转换,Kotlin中都是使用类型转换函数来进行数据类型转换,让我们来认识一下,如下表 Kotlin...Kotlin中不存在名为StringArray数组类型,因为String是一种特殊基本数据类型,要想在Kotlin中声明字符串数组,得使用Array类型,同时,分配字符串数组方法也变成了...4.按特定字符分隔子串,都调用split方法 下面是查找截取使用示例: 布局文件代码 activity_main.xml <?

    3.4K20

    Kotlin----数据类型详解

    数据类型 1、基本数据类型 基本类型 ​ Int、Long、Float、Double、Boolean、Char、String 类型之间转换 ​ toInt()、toLong()、toFloat...截取——substring() 替换——replace() 分割——split() 注意: Java中 split()返回是一个String[], 而 kotlin中返回是一个 List (2)、...字符串模板拼接 (3)、如何显示货币符号$ 4、容器 (1)、容器基本操作 A: 分类: 分为可变不可变,可变就是能执行增删改查操作。...—— 是否非空 clear —— 清空容器 contains —— 是否包含指定元素 count —— 获取元素个数/ 也可以通过 size 获取 C: 容器初始化 kotlin容器可以在定义时候就执行初始化赋值操作...:Map=mapOf("姓名" to “张三” , “性别” to "女") val userMAp2:MutableMap=mutableOf

    82820

    从点滴基础探究Kotlin独特魅力

    了解新特性,请查看《为什么从放弃到痴迷Kotlin》 : https://www.jianshu.com/p/9a419b60e2c5 而探究Kotlin独特魅力,要从细节入手,这篇博文从以下几个方面讲述...,回头再看) 属性 class Person(var name: String, var isMarried: Boolean) 说明: ① kotlin中属性是头等语言特性,完全代替了字段访问器方法...初始化并迭代 map var binaryReps = TreeMap() // 使用TreeMap让键排序 for (c in 'A'..'...是键, binary 是值. ③ 可以根据键来访问更新map : 使用map[key] 读取值 , 并使用 map[key] = value 设置值,而不需要调用 get put ....可以使用 in 运算符 !in运算符来检查值是否属于某个区间.⑨ kotlin异常java相似,除了kotlin不要求你声明函数可以抛出异常.

    2.7K30

    Kotlin | 7.运算符重载及其他约定

    get set ----------------------*/ // kotlin中可以使用类似java中数组中方式来访问map元素---使用方括号 // val...// 使用这个语法来打印给定map所有条目 fun printEntries(map: Map) { for ((key, value.../* * Kotlin中最独特最强大功能:委托属性 * 委托是一种设计模式,操作对象不用自己执行,而是把工作微委托给另一个辅助对象。...,Kotlin会自动将委托存储在隐藏属性中,并在访问或修改属性时调用委托geyValue,setValue // 代码清单7.24 使用Delegates.observable来实现属性修改通知...比较运算符映射为 equals compareTo 方法调用。 通过定义名为 get set contains 函数,就可以让你自己类与Kotlin 集合一样,使用[] in 运算符。

    95720

    用值填充JavaScript数组几种方法

    使用 Stringrepeat() 方法 我们可以调用 repeat 重复一个字符串,然后调用 split 将字符串拆分为数组条目。...然后我们调用 filter 来删除 split 返回数组末尾空字符串值。...我们可以使用 array. from 方法来创建一个新数组。通过传入映射(map)函数,可以将这些值映射到我们想要内容。 另外,Array 有一个 fill 静态方法来用值填充给定数组。...最后,我们可以在字符串上调用 repeat来重复它,然后调用 split 以拆分为数组项。 当我们调用 repeat 时,我们可能不得不调用 filter 来删除不需要值。...如果对你有所启发帮助,可以点个关注、收藏、转发,也可以留言讨论,这是对作者最大鼓励。 作者简介:Web前端工程师,全栈开发工程师、持续学习者。

    2.6K30

    Kotlin 反射有个坑你们知道么!

    想调用下面的方法把这个字符串转成 Int: public inline fun String.toInt(radix: Int): Int = java.lang.Integer.parseInt(this...Kotlin 编译器会把 String::length 这个属性映射成 Java 当中 String.length() 这个方法,换句话说,它根本不需要实现,而更像是障眼法。...也正是因为这个,Kotlin String::length 实际上对于 Jvm 来说是根本不存在东西,也就谈不上 Jvm signature 了,于是乎前面的那个反射代码就报了错。...由于目前 Kotlin 版本(1.1.4-2)反射库貌似也没有怎么做优化,所以不论你是获取方法,还是获取属性,亦或是获取扩展属性方法,Kotlin 都首先会计算出这个类所有的成员然后再来筛选,我们随便找两个例子大家一看便明白了...换句话说,不只是 String,还有 Map 之类,甚至 Enum 都会存在这样问题。

    1.1K20
    领券