当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/509240.html

相关文章:

  • Kafka可视化工具 Offset Explorer (以前叫Kafka Tool)
  • DeepWalk 原理详解
  • GitLab安装|备份数据|迁移数据及使用教程
  • 嵌入式linux驱动框架 I2C系统驱动程序模型分析
  • 深度学习实验十七 优化算法比较
  • 一个双非选手的秋招总结
  • 如何提高永磁电动机的节电效果
  • 在一个服务器上抓取 Docker 镜像并在另一个服务器上运行
  • 开源轮子 - Logback 和 Slf4j
  • 内部知识库的未来展望:技术融合与用户体验的双重升级
  • 【Linux系列】Shell 命令:`echo ““ > img.sh`及其应用
  • 【RAG实战】语言模型基础
  • 【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
  • 我的 2024 年终总结
  • STM32CUBEMX+STM32H743ZIT6+IAP+UART在线升级初始化和代码解析
  • 半连接转内连接 | OceanBase SQL 查询改写
  • Git使用经历
  • 永磁同步电机控制算法-自适应带宽LADRC转速控制器
  • 基于springboot+vue实现的博物馆游客预约系统 (源码+L文+ppt)4-127
  • LeetCode 1705.吃苹果的最大数目:贪心(优先队列) - 清晰题解
  • vim多窗格
  • ubuntu paddle ocr 部署bug问题解决
  • OpenFeign快速入门 示例:黑马商城
  • 【C++】ceil 和 floor 函数的实现与分析
  • zabbix监控山石系列Hillstone配置模版(适用于zabbix6及以上)
  • 在瑞芯微RK3588平台上使用RKNN部署YOLOv8Pose模型的C++实战指南
  • CTFHub disable_functions通关
  • Chromium GN 目标指南 - view_example 计数器示例 (七)
  • 一步一步写线程之十六线程的安全退出之二例程
  • 【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较