栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java split分割空字符串得到的数组长度为1

Java 更新时间:发布时间: 百科书网 趣学号
Java split分割空字符串得到的数组长度为1 原因

举个例子:

String str = ""; //一个空字符串
String[] arr = str.split(","); //比如要用逗号分割,这个用什么分割结果都一样
System.out.println(arr[0]); //可以获取到第一个元素,是一个空字符串""
System.out.println(arr.length); //长度为1

大家可以自己试一下
这样就导致空字符串的时候得到的长度为1,比如字符串是"gjhj625"的时候的长度也为1,这样在做一些逻辑判断的时候就可能会出错。我今天在写动态mapper的时候就被这个搞了一点时间

解决方法

如果我们想判断分割的结果大于0时是一个具体的字符串而不是一个空字符串,这个时候我们就要做一些处理

方法一

直接在分割之前就判断字符串是否为空,

String str = "";
if (str.isEmpty()) {
	arr = new String[]{};
	...
} else {
	arr = str.split(",");
	...
}
方法二

删除空字符串,再获取长度

String str = "";
String[] arr = str.split(",");
//最好在代码需要用到List的时候才用这种
List list = Arrays.asList(arr);
list = new ArrayList<>(list);
list.remove("");
结尾

如果有看懂split源码的大佬,知道为什么会这样,请指点一下我,嘿嘿嘿

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/602080.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号