我们的项目数据处理之前需要数据准备,我们把准备好的数据写入txt文件中,然后读取文件,分别处理每一条,我们把读取出来的数据放到Redis中备份一份,当处理到当前条的时候,去Redis中把当前的数据拿出来,进行处理,而我们写入的文件有一部分的是空字符串,这样就造成了惨剧的发生。
模拟的代码如下,str就是我们文件中的字符串。
String str = "1,2,3,,a,b,c,,";
String[] strs = str.split(",");
System.out.println("数组长度"+strs.length);
Arrays.stream(strs).forEach(a -> System.out.print(a+","));
很显然,我们取出来的字符串进行split()的时候,2和a之间的空字符串正常读取出来了,可是c后面的两个字符串没有读取出来,被split()方法舍弃掉了,造成我们后续读取的时候,会报错数据长度不足,所以我采取了增加一个字符作为结尾符,没有任何意义。
这样就可以正常读取到c后面的两个空字符串,后续处理时,不会出现字符串数据长度不足的问题。