文字转拼音工具类
<!-- 文字转拼音工具类 -->
<dependency>
<groupId>com.hankcs</groupId>
<artifactId>hanlp</artifactId>
<version>portable-1.8.3</version>
</dependency>
import com.hankcs.hanlp.dictionary.py.Pinyin;
import com.hankcs.hanlp.dictionary.py.PinyinDictionary;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
/**
* description: 文字转拼音工具类
* author: chengpengai
* date: 2023-04-25 周二 1:49 PM
*/
public class PinyUtil {
/**
* 获取中文完整拼音
*
* @param chineseStr
* @return
*/
public static String getPinyin(String chineseStr) {
if(StringUtils.isEmpty(chineseStr)){
return "";
}
List<Pinyin> pinyins = PinyinDictionary.convertToPinyin(chineseStr);
StringBuilder stringBuilder = new StringBuilder();
for (Pinyin pinyin : pinyins) {
stringBuilder.append(pinyin.getPinyinWithoutTone());
}
return stringBuilder.toString();
}
/**
* 获取中文完整拼音 带声调
*
* @param chineseStr
* @return
*/
public static String getPinyinAndTone(String chineseStr) {
if(StringUtils.isEmpty(chineseStr)){
return "";
}
List<Pinyin> pinyins = PinyinDictionary.convertToPinyin(chineseStr);
if (pinyins==null || pinyins.size()<=0) {
return "";
}
StringBuilder stringBuilder = new StringBuilder();
for (Pinyin pinyin : pinyins) {
//获取带声调带拼音
stringBuilder.append(pinyin.getPinyinWithToneMark());
//获取数字标识声调
// stringBuilder.append(pinyin);
//没有声调标识
// stringBuilder.append(pinyin.getPinyinWithoutTone());
//获取声母
// stringBuilder.append(pinyin.getShengmu());
//获取韵母
// stringBuilder.append(pinyin.getYunmu());
}
return stringBuilder.toString();
}
/**
* 获取中文拼音首字母
*
* @param chineseStr
* @return
*/
public static String getInitial(String chineseStr) {
if(StringUtils.isEmpty(chineseStr)){
return "";
}
List<Pinyin> pinyins = PinyinDictionary.convertToPinyin(chineseStr);
if (pinyins==null || pinyins.size()<=0) {
return "";
}
return String.valueOf(pinyins.get(0).getPinyinWithoutTone().charAt(0));
}
public static void main(String[] args) {
//不带声调的 文字全拼
System.out.println(getPinyin("重庆"));
//获取 文章首字母
System.out.println(getInitial("重庆"));
//获取带声调的文字全拼
System.out.println(getPinyinAndTone("重庆"));
}
}
每年周数获取工具类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.util.Calendar;
import java.util.Date;
public class WeekUtil {
public static Integer getWeekTotalByYear(Integer year){
LocalDate lastDate = getLastDateByYear(year);
return getWeekByDate(lastDate);
}
public static Integer getWeekByDate(LocalDate date){
return getWeekByDate(LocalDateUtil.localDateToStr(date,"yyyy-MM-dd"));
}
public static Integer getWeekByDate(LocalDateTime date){
return getWeekByDate(LocalDateTimeUtil.localDateTimeToStr(date));
}
public static Integer getWeekByDate(String date){
Integer week = null;
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date parse = null;
parse = simpleDateFormat.parse(date);
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setMinimalDaysInFirstWeek(7);
calendar.setTime(parse);
week = calendar.get(Calendar.WEEK_OF_YEAR);
} catch (ParseException e) {
e.printStackTrace();
}
return week;
}
public static String getStartDayOfWeekNo(int year,int weekNo){
Calendar cal = getCalendarFormYear(year);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setMinimalDaysInFirstWeek(7);
return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + cal.get(Calendar.DAY_OF_MONTH);
}
public static String getEndDayOfWeekNo(int year,int weekNo){
Calendar cal = getCalendarFormYear(year);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
cal.add(Calendar.DAY_OF_WEEK, 6);
return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH);
}
private static Calendar getCalendarFormYear(int year){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.setFirstDayOfWeek(Calendar.DAY_OF_MONTH);
cal.set(Calendar.YEAR, year);
return cal;
}
private static LocalDate getLastDateByYear(Integer year){
LocalDate lastDayOfYear = LocalDate.ofYearDay(year, 365);
if (lastDayOfYear.isLeapYear()) {
lastDayOfYear = LocalDate.ofYearDay(year, 366);
}
return lastDayOfYear;
}
public static void main(String[] args) throws ParseException {
System.out.println(getWeekTotalByYear(2022));
System.out.println(getWeekByDate(LocalDateUtil.strToLocalDate("2023-01-01")));
System.out.println(getWeekByDate(LocalDateTimeUtil.formatStrToLocalDateTime("2023-01-01")));
System.out.println(getWeekByDate("2023-01-01"));
System.out.println("开始时间: " + getStartDayOfWeekNo(2022,52) );
System.out.println("结束时间:" + getEndDayOfWeekNo(2022,52) );
}
}
http图片转换为MultipartFile
public static void main(String[] args) throws IOException {
String url = "http://bpic.588ku.com/element_origin_min_pic/19/03/15/75076c485081d15ed9c224ad3e4ce4a1.jpg"
MultipartFile fileItem = createFileItem(url)
File folder = new File("/Users/ai/Desktop")
folder.mkdirs()
fileItem.transferTo(new File(folder + "/pic.jpg"))
}
private static MultipartFile createFileItem(String url) {
FileItem item = null
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection()
conn.setReadTimeout(30000)
conn.setConnectTimeout(30000)
//设置应用程序要从网络连接读取数据
conn.setDoInput(true)
conn.setRequestMethod("GET")
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream is = conn.getInputStream()
// 创建工厂对象
FileItemFactory factory = new DiskFileItemFactory(16, null)
// 通过工厂对象创建 item 对象
item = factory.createItem(null, ContentType.IMAGE_JPEG.toString(), false, null)
OutputStream os = item.getOutputStream()
int bytesRead = 0
byte[] buffer = new byte[8192]
while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead)
}
os.close()
is.close()
}
} catch (IOException e) {
throw new RuntimeException("文件下载失败", e)
}
return new CommonsMultipartFile(item)
}
根据身份证号判断性别
public static String judgeGender(String idNumber) throws IllegalArgumentException{
System.out.println(idNumber.length());
if(idNumber.length() != 18 && idNumber.length() != 15){
throw new IllegalArgumentException("身份证号长度错误");
}
int gender = 0;
if(idNumber.length() == 18){
char c = idNumber.charAt(idNumber.length() - 2);
gender = Integer.parseInt(String.valueOf(c));
}else{
char c = idNumber.charAt(idNumber.length() - 1);
gender = Integer.parseInt(String.valueOf(c));
}
System.out.println("gender = " + gender);
if(gender % 2 == 1){
return "男";
}else{
return "女";
}
}
根据身份证的号码算出当前身份证持有者的年龄
public static int countAge(String idNumber) {
if(idNumber.length() != 18 && idNumber.length() != 15){
throw new IllegalArgumentException("身份证号长度错误");
}
String year;
String yue;
String day;
if(idNumber.length() == 18){
year = idNumber.substring(6).substring(0, 4);
yue = idNumber.substring(10).substring(0, 2);
day = idNumber.substring(12).substring(0,2);
}else{
year = "19" + idNumber.substring(6, 8);
yue = idNumber.substring(8, 10);
day = idNumber.substring(10, 12);
}
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String fyear = format.format(date).substring(0, 4);
String fyue = format.format(date).substring(5, 7);
String fday=format.format(date).substring(8,10);
int age = 0;
if(Integer.parseInt(yue) == Integer.parseInt(fyue)){
if(Integer.parseInt(day) <= Integer.parseInt(fday)){
age = Integer.parseInt(fyear) - Integer.parseInt(year);
}
}else{
if(Integer.parseInt(yue) < Integer.parseInt(fyue)){
age = Integer.parseInt(fyear) - Integer.parseInt(year);
}else{
age = Integer.parseInt(fyear) - Integer.parseInt(year) - 1;
}
}
System.out.println("age = " + age);
return age;
}