Java字符串的|分隔符转List实现方案

字符串处理

问题背景

在项目组对账流程中,接收对方系统的对账文件,数据以|为分隔符,读取文件内容,分条入库。

代码实现

Java中将字符串转给list,可使用 Arrays.aslist 函数,实现代码如下所示。

java 复制代码
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转换,如下所示。

java 复制代码
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方法,即

java 复制代码
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文件,全部删除,重新下载后再次运行即可

相关推荐
2301_322414280440 分钟前
活力孕康复APP 47737- 原创(免费领源码+部署教程+开发环境)
java·vue.js·spring boot·mysql·微信小程序·idea·微信开发者工具
君顾144 分钟前
外卖CPS软件开发实战:从系统架构到部署全流程指南
java·开发语言·外卖
易点云徐源1 小时前
(已解决)Foxmail打开后2分钟左右崩溃
windows·foxmail
其实防守也摸鱼1 小时前
每天一个知识点——RCE漏洞
运维·服务器·数据库·windows·安全·github·漏洞
vx_Biye_Design1 小时前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
名字还没想好☜2 小时前
Java NIO ByteBuffer 实战:flip/clear/compact 三个绕晕人的方法与 position/limit 心智模型
java·开发语言·后端·spring·nio
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之短信服务多供应商动态切换(阿里云与LeanCloud)
java·spring·阿里云
Doubbbbbbble云2 小时前
区间合并问题的常见算法模式与优化思路4
java·数据结构·算法
小溪学编程2 小时前
AQS 原理详解:从 CLH 队列到 ReentrantLock 的实现
java·开发语言
蜗牛互联网2 小时前
语音AI开始边听边说,改变的不只是响应速度
java·人工智能·后端·语音识别