java csvutil

package com.test.util;
import com.csvreader.CsvReader;
import jdk.nashorn.internal.runtime.regexp.joni.exception.ValueException;
import java.util.Random;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Arrays;

public class CsvUtil {

    public static Map  getUserId(String path,int uidNum,int colsNum){
        Map<String,String> map =new HashMap();
        Random rand =new Random();
        List idList= new ArrayList();
        try{
            CsvReader csvReader = new CsvReader(path);
            csvReader.readHeaders();
            List featureCols= new ArrayList();
            String[] headArray =csvReader.getHeaders();
            for (int i = 2; i < headArray.length; i++) {
                featureCols.add(headArray[i]);
            }
            int colMax=featureCols.size()-2;
            if(colsNum<=colMax && colsNum>0){

            }else{
                throw new ValueException("colNum must more than 0 and  less than "+colMax);
            }
            int colStart =rand.nextInt(featureCols.size()-colsNum+1);
            List temp =featureCols.subList(colStart,colStart+colsNum);
            //todo get header
            map.put("header",String.join(",",temp));
            while (csvReader.readRecord()) {
                String uid= csvReader.get(0);
                idList.add(uid);
            }
            }catch (Exception e){
            e.printStackTrace();
        }
        int uidMax=idList.size();
        if (uidNum<=uidMax && uidNum>0){

        }else{
            throw new ValueException("uidNum must more than 0 and less than  "+uidMax);
        }
        int uidStart =rand.nextInt(uidMax-uidNum+1);
        List temp2 =idList.subList(uidStart,uidStart+uidNum);
        map.put("userId",String.join(",",temp2));
        return map;
    }



    public  static List<String>  stringToList(String str){
        return  Arrays.asList(str.split(","));
    }

}

javacsv-2.0.jar

posted @ 2020-11-19 10:54  不带R的墨菲特  阅读(535)  评论(2编辑  收藏  举报