添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

现有一份 .csv 格式数据,数据格式如下,需要以逗号分隔字符串,但忽略双引号内的逗号。

违反指示,G4辅路,东向西,"118.266529560,39.869942703",999350003108,52,0,0,0,3,3,轨迹

需要达到的目的如下:

["违反指示","G4辅路","东向西","118.266529560,39.869942703","999350003108","52","0","0","0","3","3","轨迹"]
  • 使用正则表达式配合.split()进行字符串分割
  • 使用cn.hutool.core.text.csv中的CsvReaderCsvData进行分割
  • 1. 使用正则表达式配合.split()进行字符串分割
    package com.data;
    import org.junit.Test;
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DataPushServiceTest {
    	@Test
        public void testFun(){
            String line = "违反指示,G4辅路,东向西,\"118.266529560,39.869942703\",999350003108,52,0,0,0,3,3,轨迹";
            String[] res = line.trim().split(",(?=([^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)",-1);
            for (String s : res){
                System.out.println(s);
            // 输出完整的数据
            System.out.println(res);
    
    output:
    "118.266529560,39.869942703"
    999350003108
    违反指示,G4辅路,东向西,"118.266529560,39.869942703",999350003108,52,0,0,0,3,3,轨迹
    
    2. 使用cn.hutool.core.text.csv中的CsvReaderCsvData进行分割
    package com.data;
    import org.junit.Test;
    import cn.hutool.core.text.csv.CsvData;
    import cn.hutool.core.text.csv.CsvReader;
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DataPushServiceTest {
    	@Test
        public void testFun(){
            CsvReader csvReader = new CsvReader();
            File file = new File("E:/data/bj_weizhang.csv");
            CsvData read = csvReader.read(file);
            String coords = read.getRow(1).getByName("coords");
            System.out.println(coords);
    
    output:
    "118.266529560,39.869942703"
    

    使用这个方法更简单,但是该方法会一次加载文件的全部内容,文件较大是对性能要求较高,慎用!