package com.steerinfo.ems.Utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

/**
 * 字符串工具类
 * 
 * @author
 *
 */
public class StrUtils {
    /**
     * 判断字符串是否为正整数或小数
     * @param str
     * @return
     */
    public static boolean isNumeric(String str) {
        Pattern pattern = Pattern.compile("[0-9]*");
        if (str.indexOf(".") > 0) {//判断是否有小数点
            if (str.indexOf(".") == str.lastIndexOf(".") && str.split("\\.").length == 2) { //判断是否只有一个小数点
                return pattern.matcher(str.replace(".", "")).matches();
            } else {
                return false;
            }
        } else {
            return pattern.matcher(str).matches();
        }
    }
    
    /**
     * 字符串转Long类型，异常返回null
     * 
     * @param s
     * @return
     */
    public static Long strToLong(String s) {
        if(s==null || s.trim().isEmpty()){
        	return null;
        }
        Long l;
        try {
        	l = Long.valueOf(s);
		} catch (NumberFormatException e) {
			return null;
		}
        return l;
    }
    
    /**
     * 字符串转Integer类型，异常返回null
     * 
     * @param s
     * @return
     */
    public static Integer strToInteger(String s) {
        if(s==null || s.trim().isEmpty()){
        	return null;
        }
        Integer l;
        try {
        	l = Integer.valueOf(s);
		} catch (NumberFormatException e) {
			return null;
		}
        return l;
    }
    
    /**
     * 字符串用中英文逗号分隔，取值返回list中
     * 
     * @param str
     * @return
     */
    public static List<String> strToList(String str) {
    	String[] ids = str.split(",");
		List<String> l = new ArrayList<String>();
		for(int i=0;i<ids.length;i++){
			String[] s2 = ids[i].trim().split("，");
			for(int j=0;j<s2.length;j++){
				l.add(s2[j].trim());
			}
		}
    	return l;
    }
    
    /**
     * 判断字符串是否为正整数或小数
     * @param str
     * @return
     */
    public static boolean isClock(String clock) {
    	String regex = "20[0-9]{2}(0[1-9]|1[0-2])";
    	return clock.matches(regex);
    }
}
