Java字符串的|分隔符转List实现方案
字符串处理
- 问题背景
- 代码实现
- 代码优化
- 原因分析
- 实现方案
- 注意事项
- 异常处理
- Maven未识别异常
问题背景
在项目组对账流程中,接收对方系统的对账文件,数据以|为分隔符,读取文件内容,分条入库。
代码实现
Java中将字符串转给list,可使用 Arrays.aslist 函数,实现代码如下所示。
import java.util.Arrays;
import java.util.List;
public class DealData {
public static void main(String[] args){
String str = "北京|海淀|中关村|清华大学|清华园";
List<String> strList = Arrays.asList(str.split("|"));
System.out.println("转换出来的list为:"+strList);
}
}
执行代码,在控制台打印结果如下所示。
代码优化
对于以上转换的结果,不是想要的,如何将北京,海淀,中关村 等逗号分割。
原因分析
分析结果为 Arrays.aslist 其实就是将字符串先转换为数组,再将数组转换为list,对于分隔符|,其无法识别,只能是单个字符分割展示。
实现方案
可将 分隔符|转换为逗号,,再进行list转换,如下所示。
public static void main(String[] args){
String str = "北京|海淀|中关村|清华大学|清华园";
String finalStr = str.replace("|",",");
List<String> strList = Arrays.asList(finalStr.split(","));
System.out.println("转换出来的list为:"+strList);
}
转换结果如下所示。
注意事项
注意其创建后,list长度不可改变,若要新增新元素,执行list的add方法,可能报错【java.lang.UnsupportedOperationException】。
实现方案可提前定义变长的ArrayList,并使用 list的addAll方法,即
List<String> strNewList = new ArrayList<>();
strNewList.addAll(Arrays.asList("北京大学","清华大学"));
System.out.println("转换出来最终的list为:"+strNewList);
执行结果如下所示。
异常处理
Maven未识别异常
异常编码
Caused by: java.util.zip.ZipException: error in opening zip file
分析原因
当我们重新安装电脑操作系统后,丢失部分信息,本地maven库里的jar包就会报这种错误。
处理方案
本地maven库对应报错的jar文件,全部删除,重新下载后再次运行即可