java常用工具方法整理(一)

package com.zs.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MyUtil {

	/**
	 * @Title: listPaging
	 * @Description: list分页
	 * @param list
	 * @param pageNum
	 * @param pageSize
	 * @return List<String>
	 */
	public List<String> listPaging(List<String> list, Integer pageNum, Integer pageSize) {
		if (list == null) {
			return null;
		}
		if (list.size() == 0) {
			return null;
		}
		Integer count = list.size(); // 记录总数
		Integer pageCount = 0; // 页数
		if (count % pageSize == 0) {
			pageCount = count / pageSize;
		} else {
			pageCount = count / pageSize + 1;
		}

		int fromIndex = 0; // 开始索引
		int toIndex = 0; // 结束索引

		if (pageNum != pageCount) {
			fromIndex = (pageNum - 1) * pageSize;
			toIndex = fromIndex + pageSize;
		} else {
			fromIndex = (pageNum - 1) * pageSize;
			toIndex = count;
		}
		List<String> pageList = list.subList(fromIndex, toIndex);
		return pageList;
	}

	/**
	 * @Title: binarySearch
	 * @Description: list集合 根据某一字段值 二分查找
	 * @param arr
	 * @param findElem
	 * @return int
	 */
	public int binarySearch(String arr[], String findElem) {
		int low = 0;
		int high = arr.length - 1;
		int mid;
		while (low <= high) {
			mid = (low + high) / 2;
			// 如果要查找的元素findElem小于中间位置的元素mid,指向数组的较大端的high索引重新指向中间索引mid的左边(mid-1)
			if (findElem.compareTo(arr[mid]) < 0) {
				high = mid - 1;
			}
			// 如果要查找的元素findElem大于中间位置的元素mid,指向数组的较小端的low索引重新指向中间索引mid的右边(mid+1)
			if (findElem.compareTo(arr[mid]) > 0) {
				low = mid + 1;
			}
			if (findElem.compareTo(arr[mid]) == 0) {
				return mid;
			}
		}
		return -1;
	}

	public static boolean isValidDate(String str, String strPattern) {
		boolean convertSuccess = true;
		SimpleDateFormat format = new SimpleDateFormat(strPattern);
		try {
			format.setLenient(false);
			format.parse(str);
			/*
			 * Date day=new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy");
			 * String thisYear = df.format(day)+"01"; if (str.compareTo(thisYear) >0) {
			 * convertSuccess = true; } else { convertSuccess=false; }
			 */
		} catch (ParseException e) {
			// e.printStackTrace();
			// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
			convertSuccess = false;
		} catch (NullPointerException e) {
			convertSuccess = false;
		}
		return convertSuccess;
	}

	public static void main(String[] args) {
		System.out.println(isValidDate("2020/09/01", "yyyy/mm/dd"));
	}

	public static boolean isNotEmpty(String s) {
		return null != s && !s.isEmpty();
	}

	public static boolean isEmpty(String s) {
		return null == s || s.isEmpty();
	}

	/**
	 * @description: 下划线转大驼峰式
	 * @param: [source]
	 *             请求参数
	 * @return: java.lang.String 响应参数
	 */
	public static String underlineToBigCamelCase(String source) {
		String[] strs = source.split("_");
		StringBuffer stringBuffer = new StringBuffer();
		for (String s : strs) {
			stringBuffer.append(upperFirst(s.toLowerCase()));
		}
		return String.valueOf(stringBuffer);
	}

	/**
	 * @description: 中划线转大驼峰式
	 * @param: [source]
	 *             请求参数
	 * @return: java.lang.String 响应参数
	 */
	public static String strikeToBigCamelCase(String source) {
		String[] strs = source.split("-");
		StringBuffer stringBuffer = new StringBuffer();
		for (String s : strs) {
			stringBuffer.append(upperFirst(s.toLowerCase()));
		}
		return String.valueOf(stringBuffer);
	}

	/**
	 * @description: 中划线转小驼峰式
	 * @param: [source]
	 *             请求参数
	 * @return: java.lang.String 响应参数
	 */
	public static String strikeToLittleCamelCase(String source) {
		return lowerFirst(strikeToBigCamelCase(source));
	}

	/**
	 * @description: 下划线转小驼峰式
	 * @param: [source]
	 *             请求参数
	 * @return: java.lang.String 响应参数
	 */
	public static String underlineToLittleCamelCase(String source) {
		return lowerFirst(underlineToBigCamelCase(source));
	}

	/**
	 * @description: 首字母大写
	 * @param: [source]
	 *             请求参数
	 * @return: java.lang.String 响应参数
	 */
	public static String upperFirst(String source) {
		char[] chars = source.toCharArray();
		chars[0] = 97 <= chars[0] && chars[0] <= 122 ? (char) (chars[0] - 32) : chars[0];
		return String.valueOf(chars);
	}

	/**
	 * @description: 首字母小写
	 * @param: [source]
	 *             请求参数
	 * @return: java.lang.String 响应参数
	 */
	public static String lowerFirst(String source) {
		char[] chars = source.toCharArray();
		chars[0] = 65 <= chars[0] && chars[0] <= 90 ? (char) (chars[0] + 32) : chars[0];
		return String.valueOf(chars);
	}

	/**
	 * @description: 校验邮箱格式
	 * @param: [email]
	 *             请求参数
	 * @return: boolean 响应参数
	 */
	public static boolean validateEmailFormat(String email) {
		if (StringUtil.isEmpty(email)) {
			return false;
		}
		String regex = "^([a-z0-9A-Z]+[-|.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(email);
		return matcher.matches();
	}

	

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

All is well!8023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值