package com.njcn.utils;

/**
 * @Author: Sunwei 【sunW2016@163.com】
 * @Description:
 * @Date: Create in 22:28 2018/3/5
 * @Modified By:
 * @author njcn
 */

import cn.hutool.core.collection.CollectionUtil;

import java.util.ArrayList;
import java.util.List;

/*****************************************************************
 * 字符串转基础类型，可能转换不成功，封装该方法
 * 第一个参数为需要转换的字符串
 * 第二个参数为null时，直接抛出异常，为数值则传入一个默认值
*****************************************************************/
public class Utils {
	public static int getIntValue(String s,Integer integer) {
		try {
            integer = Integer.parseInt(s);
        } catch (Exception e) {
            if (null == integer) {
                throw e;
            }
        }

        return integer.intValue();
	}

	/**
	 * String对象转float
	 *
	 * @param f
	 * @return
	 */
	public static float getFloatValue(String s,Float f) {
		try {
            f = Float.parseFloat(s);
        } catch (Exception e) {
            if (null == f) {
                throw e;
            }
        }

        return f.floatValue();
	}

	/**
	 * String对象转double
	 *
	 * @param d
	 * @return
	 */
	public static double getDoubleValue(String s,Double d) {
		try {
            d = Double.parseDouble(s);
        } catch (Exception e) {
            if (null == d) {
                throw e;
            }
        }

        return d.doubleValue();
	}

	/**
	 * int转String对象
	 */
	public static String int2String(int iValue) {
		return Integer.toString(iValue);
	}

	/**
	 * float转String
	 */
	public static String float2String(float fValue) {
		return Float.toString(fValue);
	}

	/**
	 * 按指定大小，分隔集合，将集合按规定个数分为n个部分
	 * @author cdf
	 * @date 2021/10/26
	 */
	public static List<List<Integer>> splitList(List<Integer> list, int len){
		if(CollectionUtil.isEmpty(list) || len<1){
			return null;
		}
		List<List<Integer>> result = new ArrayList<>();
		int size = list.size();
		int count = (size+len-1)/1000;
		for(int i=0;i<count;i++){
			List<Integer> subList= list.subList(i*len,((i+1)*len>size?size:len*(i+1)));
			result.add(subList);
		}
		return result;
	}
}
