package org.arong.util; /** * int整型工具类 * @author arong * @since 1.0.5 */ import java.util.regex.Pattern; public class NumberUtil { /** * 判断一个字符串是否可以转换成int * @param str * @return */ public static boolean can2Int(String str){ if(str == null || "".equals(str)) return false; if(str.startsWith("-")){ String str2 = str.substring(1, str.length()); return Pattern.matches("[0]||[1-9][0-9]{0,9}", str2) && Long.parseLong(str2) < Long.parseLong("2147483649"); } else return Pattern.matches("[0]||[1-9][0-9]{0,9}", str) && Long.parseLong(str) < Long.parseLong("2147483648"); } /** * 判断一个long是否可以转换成int * @param lon * @return */ public static boolean can2Int(long lon){ return lon < 2147483647 && lon > -2147483648; } /** * 判断一个字符串是否可以转换为long * @param str * @return */ public static boolean can2Long(String str){ if(str == null && "".equals(str)) return false; if(str.startsWith("-")){ String str2 = str.substring(1, str.length()); return Pattern.matches("[0]||[1-9][0-9]{0,18}", str2); } else return Pattern.matches("[0]||[1-9][0-9]{0,18}", str); } /** * 将一个字符串数组转换成int数组 * @param strs * @return */ public static int[] parseInt(String[] strs){ int[] strs_int = new int[strs.length]; for (int i = 0; i < strs_int.length; i++) { if(can2Int(strs[i])){ strs_int[i] = Integer.parseInt(strs[i]); } } return strs_int; } /** * 把int数组转换成long数组 * @param ints * @return */ public static long[] parseLong(int[] ints){ long[] longs = new long[ints.length]; for (int i = 0; i < longs.length; i++) { longs[i] = (long)ints[i]; } return longs; } /** * 把long数组转换成int数组 * @param longs * @return */ public static int[] parseInt(long[] longs){ int[] strs_int = new int[longs.length]; for (int i = 0; i < strs_int.length; i++) { if(can2Int(longs[i])){ strs_int[i] = (int)longs[i]; } } return strs_int; } }