Java如何拆分带引号的CSV格式字符串以传入方法创建Job对象?
字符串拆分实现方案
你当前拿到的每一行字符串格式固定:三个字段各自用双引号包裹,字段之间用逗号分隔,不需要复杂正则,仅用基础字符串方法就可以完成拆分,步骤如下:
- 第一步:去掉整行字符串首尾的双引号
每一行的第一个字符和最后一个字符都是仅做包裹用的无意义双引号,直接用substring方法截取中间内容即可 - 第二步:用
","作为分隔符拆分字符串
去除首尾引号后,不同字段之间的分隔固定为引号+逗号+引号的组合,字段内部的逗号不会附带两侧的引号,因此用这个组合拆分不会切到字段内部的内容
你可以直接参考以下示例代码实现:
// 遍历你已经存储好的文件内容数组,假设你的数组命名为fileContentArr for (int i = 0; i < fileContentArr.length; i++) { String currentLine = fileContentArr[i]; // 移除首尾的双引号 String lineWithoutEdgeQuotes = currentLine.substring(1, currentLine.length() - 1); // 用","作为分隔符拆分,Java代码里双引号需要转义,所以分隔符写作\"\",\" String[] jobFields = lineWithoutEdgeQuotes.split("\",\""); // 直接将拆分得到的数组传入createJob方法即可 Job job = jobService.createJob(jobFields); // 后续你自己的输出逻辑写在这里即可 }
这个方法完全匹配你当前的输入格式,只要输入每行都是标准的三个双引号包裹字段的结构,就不会出现拆分错误,所有字段内部的逗号、空格都不会影响拆分结果。
内容的提问来源于stack exchange,提问作者EthanLTB
相关产品推荐
相关产品推荐

