背景:
在 Spark
解析文件的时候,忽然报错 java.lang.ArrayIndexOutOfBoundsException
。排查问题,也没发现有任何的异常。最后发现文件中,有一行数据的最后一个字段是空的,没有数据的,如下所示:
95009,梦圆圆,女,18,MA
95015,王君,男,18,MA
95016,,男,18,MA
95017,,男,18,
id
为 95017
的这一行数据中,最后一个字段是空
解决方式:
在调用 split
API
的时候,添加第二个参数为 -1
&#xff08;只要是小于0的数即可&#xff09;&#xff0c;arg1<0
&#xff0c;保留末尾的空字符串
String[] split(String regex, int limit)
它返回一个字符串数组&#xff0c;其中指定了数组中的元素数量&#xff0c;数组的最后一个元素包含分割数组的倒数第二个元素后剩下的字符串部分。
当limit指定为负数时&#xff0c;所有的分割字段都要返回&#xff0c;包括空的内容。