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
原文:https://www.cnblogs.com/SunshineKimi/p/14004197.html