public class Tools {
public Tools() {
}
/**
* 将ArrayList转换为一个一维数组
* @param al
* @return
*/
public static String[] cvtArrayListToArr(ArrayList<String> al) {
return al.toArray(new String[al.size()]);
}
/**
* 将ArrayList转换为一个二维数组
* @param al
* @param colCount
* @return
*/
public static String[][] cvtArrayListToArr(ArrayList<String[]> al, int colCount) {
Object[] obj = al.toArray();
int rowCount = obj.length;
String[][] arr = new String[rowCount][colCount];
for (int i = 0; i < rowCount; i++) {
arr[i] = (String[]) obj[i];
}
return arr;
}
/**
* 将ArrayList转换为一个二维数组
* @param al ArrayList<String[]>
* @return
*/
public static String[][] cvtArrayListToArr(ArrayList<String[]> al) {
int rowCount = al.size();
if(rowCount == 0) return null;
String [] eliment = al.get(0);
int colCount = eliment.length;
return al.toArray(new String[rowCount][colCount]);
}
/**
* 将数组中的null转换为"",并返回转换后的数组
* @param arr
*/
public static String[] cvtNullToBlank(String[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == null) {
arr[i] = "";
}
}
return arr;
}
/**
* 将数组中的null转换为"",并返回转换后的数组
* @param arr
*/
public static String[][] cvtNullToBlank(String[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] == null) {
arr[i][j] = "";
}
}
}
return arr;
}
/**
* 将传入的一维数组转换成为带有,分隔的字符串返回
* @param inArr 传入的一维数组
* @return 处理后用“,”分隔的字符串
*/
public static String arrToString(String[] inArr) {
String outStr = "";
if (inArr == null || inArr.length < 1) {
return outStr;
}
StringBuffer outSb = new StringBuffer();
for (int i = 0; i < inArr.length; i++) {
outSb.append(inArr[i]);
outSb.append(",");
}
outStr = outSb.substring(0, outSb.length() - 1);
return outStr;
}
/**
* 字符串数组转换为字符串
* @param strs
* @return
*/
public static String strsToStr(String[] strs) {
StringBuffer str = new StringBuffer();
if (strs != null && strs.length > 0) {
for (int i = 0; i < strs.length ; i++) {
str.append(strs[i]);
str.append(",");
}
str.deleteCharAt(str.length()-1);
}
return str.toString();
}
/**
* 将传入的一维数组转换成为带有分隔字符的字符串返回
* @param inArr 传入的一维数组
* @param spit 分隔使用的符号
* @return 处理后用spit分隔的字符串
*/
public static String arrToString(String[] inArr, String spit) {
String outStr = "";
if (inArr == null || inArr.length < 1) {
return outStr;
}
StringBuffer outSb = new StringBuffer();
for (int i = 0; i < inArr.length; i++) {
outSb.append(inArr[i]);
outSb.append(spit);
}
outStr = outSb.substring(0, outSb.length() - 1);
return outStr;
}
/**
* 产生随机数,从0开始,最大为maxVal
* maxVal 随机数传入的参数,控制随机数范围
* @param maxVal
* @return 单个int型数字,不包括传入的最大值参数
*/
public static int createRandom(int maxVal) {
int result = 0;
//Math.random产生一个从0.0到1.0之间的小数,但不包括1
Random r = new Random();
result = r.nextInt(maxVal);
return result;
}
/**
* 产生随机数,参数控制最大最小范围
* 如果最小值大于最大值则最小值和最大值互换后执行
* @param minVal 传入最小值
* @param maxVal 传入最大值
* @return 单个int型数字,不包括传入的最大值参数
*/
public static int createRandom(int minVal, int maxVal) {
//如果最小值大于最大值则最小值和最大值互换
if (minVal > maxVal) {
int changeNum = maxVal;
maxVal = minVal;
minVal = changeNum;
}
//最大值和最小值的差
Random r = new Random();
return r.nextInt(maxVal - minVal)+minVal;
}
/**
* 查找数组中时候存在指定的字符串,没有返回-1,存在返回第一个所在的下标
* @param inArr
* @param keywords
* @return
*/
public static int searchArr(String[] inArr, String keywords) {
for (int i = 0; i < inArr.length; i++) {
if (inArr[i].equals(keywords)) {
return i;
}
}
return -1;
}
/**
* @param sql
* @call none
* @return 处理好的SQL语句
* @function 过滤掉SQL语句中的单引号,转成''
* @date
* @author
* @modify
*/
public static String filterSingleQuotes(String sql) {
String sqlStr = ""; //存储处理的SQL语句
if (sql == null) { /*空语句,直接返回*/
return "";
}
sqlStr = sql.trim(); //去掉SQL语句中的空格
sqlStr = sqlStr.replaceAll("'", "''"); //得到处理好的语句
return sqlStr; //返回处理好的语句
}
/**
* @param sql
* @call none
* @return 处理好的SQL语句
* @function 过滤掉SQL语句中的& < > "
* @date
* @author
* @modify
*/
public static String filterNotHttp(String str) {
String sqlStr = ""; //存储处理的SQL语句
if (str == null) { /*空语句,直接返回*/
return "";
}
sqlStr = str.trim(); //去掉SQL语句中的空格
sqlStr = sqlStr.replaceAll("&", "&");
sqlStr = sqlStr.replaceAll("<", "<");
sqlStr = sqlStr.replaceAll(">", ">");
sqlStr = sqlStr.replaceAll("/"", """);
return sqlStr; //返回处理好的语句
}
/**
* @param id
* @call none
* @return 处理好的id
* @function 对字符串id进行加一处理,最后返回9位的字符串
* @date
* @author
* @modify
*/
public static String idAddOne(String id) {
try {
int i = Integer.parseInt(id);
i = i + 1;
String s = Integer.toString(i);
int k = 9 - s.length();
for (int j = 0; j < k; j++) {
s = "0" + s;
}
return s;
}
catch (Exception e) {
Debug.print_log(e);
return null;
}
}
/**
* @param comm
* @call none
* @return 处理好的comm
* @function 对字符串comm进行加一处理,最后返回5位的字符串
* @date
* @author
* @modify
*/
public static String commAddOne(String comm) {
try {
int i = Integer.parseInt(comm);
i = i + 1;
String s = Integer.toString(i);
int k = 5 - s.length();
for (int j = 0; j < k; j++) {
s = "0" + s;
}
return s;
}
catch (Exception e) {
Debug.print_log(e);
return null;
}
}
/**
* @param meetnum
* @call none
* @return 处理好的meetnum
* @function 为会议纪要号加一,返回三位字符串
* @date
* @author
* @modify
*/
public static String meetnumAddOne(String meetnum) {
try {
int i = Integer.parseInt(meetnum);
i = i + 1;
String s = Integer.toString(i);
int k = 3 - s.length();
for (int j = 0; j < k; j++) {
s = "0" + s;
}
return s;
}
catch (Exception e) {
Debug.print_log(e);
return null;
}
}
/**
* @param
* @call none
* @return 处理好的"yyyy-MM-dd HH:mm"
* @function
* @date
* @author
*/
public static String getFormatDate() {
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String nowDate = df.format(date);
return nowDate;
}
/**
* @param
* @call none
* @return 处理好的"yyyy-MM-dd HH:mm"
* @function
* @date
* @author
*/
public static String getFormatDate(String format) {
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat(format);
String nowDate = df.format(date);
return nowDate;
}
/**
* 取得字符串str的后len位并+1;如果长度不足len位,后面补零;如果后面len位不是数字,继续补0
* @param str 字符串str,len后几位加1
* @return
*/
public String lastNumAddOne(String str,int len){
if(str ==null) str="0";
int i = -1;
for (i=str.length()-1;i>=0;i--){
if (!Character.isDigit(str.charAt(i))){
break;
}
}
while(str.length()-i<=len) {str = str+"0";}
String header = str.substring(0,str.length()-len);
String laster = str.substring(str.length()-len);
int intTemp = Integer.parseInt(laster);
intTemp = intTemp + 1;
laster = Integer.toString(intTemp);
while(laster.length() < len){
laster = "0" + laster;
}
return header+laster;
}
/**
* @param num,string类型的数字,如果不是数字,则返回null;len结果为长度len的字符串,不足len的,前面补零
* @call none
* @return 处理好的num
* @function 为num加一,返回len位字符串
* @date
* @author
* @modify
*/
public static String strNumAddOne(String num, int len) {
try {
int i = Integer.parseInt(num);
i = i + 1;
String s = Integer.toString(i);
int k = len - s.length();
for (int j = 0; j < k; j++) {
s = "0" + s;
}
return s;
}
catch (Exception e) {
Debug.print_log(e);
return null;
}
}
}