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

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

Java split分割字符串得到的数组长度为1 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源码的大佬,知道为什么会这样,请指点一下我,嘿嘿嘿

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5607191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存