Browse Source

fix deprecate

Looly 6 years ago
parent
commit
781b8efb72

+ 37 - 87
hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java

@@ -1,28 +1,8 @@
 package cn.hutool.core.collection;
 
 import java.lang.reflect.Type;
-import java.util.AbstractCollection;
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Deque;
-import java.util.EnumSet;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.Set;
-import java.util.Stack;
-import java.util.TreeMap;
-import java.util.TreeSet;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -70,7 +50,7 @@ public class CollUtil {
 	 * @since 4.6.3
 	 */
 	public static <T> Set<T> emptyIfNull(Set<T> set) {
-		return (null == set) ? Collections.<T>emptySet() : set;
+		return (null == set) ? Collections.emptySet() : set;
 	}
 
 	/**
@@ -83,7 +63,7 @@ public class CollUtil {
 	 * @since 4.6.3
 	 */
 	public static <T> List<T> emptyIfNull(List<T> set) {
-		return (null == set) ? Collections.<T>emptyList() : set;
+		return (null == set) ? Collections.emptyList() : set;
 	}
 
 	/**
@@ -476,10 +456,10 @@ public class CollUtil {
 	@SafeVarargs
 	public static <T> HashSet<T> newHashSet(boolean isSorted, T... ts) {
 		if (null == ts) {
-			return isSorted ? new LinkedHashSet<T>() : new HashSet<T>();
+			return isSorted ? new LinkedHashSet<>() : new HashSet<>();
 		}
 		int initialCapacity = Math.max((int) (ts.length / .75f) + 1, 16);
-		final HashSet<T> set = isSorted ? new LinkedHashSet<T>(initialCapacity) : new HashSet<T>(initialCapacity);
+		final HashSet<T> set = isSorted ? new LinkedHashSet<>(initialCapacity) : new HashSet<>(initialCapacity);
 		Collections.addAll(set, ts);
 		return set;
 	}
@@ -520,7 +500,7 @@ public class CollUtil {
 		if (null == iter) {
 			return newHashSet(isSorted, (T[]) null);
 		}
-		final HashSet<T> set = isSorted ? new LinkedHashSet<T>() : new HashSet<T>();
+		final HashSet<T> set = isSorted ? new LinkedHashSet<>() : new HashSet<>();
 		while (iter.hasNext()) {
 			set.add(iter.next());
 		}
@@ -540,7 +520,7 @@ public class CollUtil {
 		if (null == enumeration) {
 			return newHashSet(isSorted, (T[]) null);
 		}
-		final HashSet<T> set = isSorted ? new LinkedHashSet<T>() : new HashSet<T>();
+		final HashSet<T> set = isSorted ? new LinkedHashSet<>() : new HashSet<>();
 		while (enumeration.hasMoreElements()) {
 			set.add(enumeration.nextElement());
 		}
@@ -558,7 +538,7 @@ public class CollUtil {
 	 * @since 4.1.2
 	 */
 	public static <T> List<T> list(boolean isLinked) {
-		return isLinked ? new LinkedList<T>() : new ArrayList<T>();
+		return isLinked ? new LinkedList<>() : new ArrayList<>();
 	}
 
 	/**
@@ -575,7 +555,7 @@ public class CollUtil {
 		if (ArrayUtil.isEmpty(values)) {
 			return list(isLinked);
 		}
-		final List<T> arrayList = isLinked ? new LinkedList<T>() : new ArrayList<T>(values.length);
+		final List<T> arrayList = isLinked ? new LinkedList<>() : new ArrayList<>(values.length);
 		Collections.addAll(arrayList, values);
 		return arrayList;
 	}
@@ -751,7 +731,7 @@ public class CollUtil {
 	 * @return {@link CopyOnWriteArrayList}
 	 */
 	public static <T> CopyOnWriteArrayList<T> newCopyOnWriteArrayList(Collection<T> collection) {
-		return (null == collection) ? (new CopyOnWriteArrayList<T>()) : (new CopyOnWriteArrayList<T>(collection));
+		return (null == collection) ? (new CopyOnWriteArrayList<>()) : (new CopyOnWriteArrayList<>(collection));
 	}
 
 	/**
@@ -1028,7 +1008,7 @@ public class CollUtil {
 			return list;
 		}
 
-		final List<T> list2 = (list instanceof LinkedList) ? new LinkedList<T>() : new ArrayList<T>(list.size());
+		final List<T> list2 = (list instanceof LinkedList) ? new LinkedList<>() : new ArrayList<>(list.size());
 		T modified;
 		for (T t : list) {
 			modified = editor.edit(t);
@@ -1092,7 +1072,7 @@ public class CollUtil {
 		if (null == list || null == filter) {
 			return list;
 		}
-		final List<T> list2 = (list instanceof LinkedList) ? new LinkedList<T>() : new ArrayList<T>(list.size());
+		final List<T> list2 = (list instanceof LinkedList) ? new LinkedList<>() : new ArrayList<>(list.size());
 		for (T t : list) {
 			if (filter.accept(t)) {
 				list2.add(t);
@@ -1141,12 +1121,7 @@ public class CollUtil {
 	 * @since 3.2.2
 	 */
 	public static <T extends Collection<E>, E> T removeNull(T collection) {
-		return filter(collection, new Filter<E>() {
-			@Override
-			public boolean accept(E e) {
-				return null != e;
-			}
-		});
+		return filter(collection, Objects::nonNull);
 	}
 
 	/**
@@ -1159,12 +1134,7 @@ public class CollUtil {
 	 * @since 3.2.2
 	 */
 	public static <T extends Collection<E>, E extends CharSequence> T removeEmpty(T collection) {
-		return filter(collection, new Filter<E>() {
-			@Override
-			public boolean accept(E e) {
-				return StrUtil.isNotEmpty(e);
-			}
-		});
+		return filter(collection, StrUtil::isNotEmpty);
 	}
 
 	/**
@@ -1177,12 +1147,7 @@ public class CollUtil {
 	 * @since 3.2.2
 	 */
 	public static <T extends Collection<E>, E extends CharSequence> T removeBlank(T collection) {
-		return filter(collection, new Filter<E>() {
-			@Override
-			public boolean accept(E e) {
-				return StrUtil.isNotBlank(e);
-			}
-		});
+		return filter(collection, StrUtil::isNotBlank);
 	}
 
 	/**
@@ -1248,14 +1213,11 @@ public class CollUtil {
 	 * @since 4.5.7
 	 */
 	public static List<Object> getFieldValues(Iterable<?> collection, final String fieldName, boolean ignoreNull) {
-		return extract(collection, new Editor<Object>() {
-			@Override
-			public Object edit(Object bean) {
-				if (bean instanceof Map) {
-					return ((Map<?, ?>) bean).get(fieldName);
-				} else {
-					return ReflectUtil.getFieldValue(bean, fieldName);
-				}
+		return extract(collection, bean -> {
+			if (bean instanceof Map) {
+				return ((Map<?, ?>) bean).get(fieldName);
+			} else {
+				return ReflectUtil.getFieldValue(bean, fieldName);
 			}
 		}, ignoreNull);
 	}
@@ -1310,19 +1272,16 @@ public class CollUtil {
 	 * @since 3.1.0
 	 */
 	public static <T> T findOneByField(Iterable<T> collection, final String fieldName, final Object fieldValue) {
-		return findOne(collection, new Filter<T>() {
-			@Override
-			public boolean accept(T t) {
-				if (t instanceof Map) {
-					final Map<?, ?> map = (Map<?, ?>) t;
-					final Object value = map.get(fieldName);
-					return ObjectUtil.equal(value, fieldValue);
-				}
-
-				// 普通Bean
-				final Object value = ReflectUtil.getFieldValue(t, fieldName);
+		return findOne(collection, t -> {
+			if (t instanceof Map) {
+				final Map<?, ?> map = (Map<?, ?>) t;
+				final Object value = map.get(fieldName);
 				return ObjectUtil.equal(value, fieldValue);
 			}
+
+			// 普通Bean
+			final Object value = ReflectUtil.getFieldValue(t, fieldName);
+			return ObjectUtil.equal(value, fieldValue);
 		});
 	}
 
@@ -2294,21 +2253,17 @@ public class CollUtil {
 	 * @param collection 被排序的{@link Collection}
 	 * @return 排序后的Set
 	 */
+	@SuppressWarnings({"unchecked", "rawtypes"})
 	public static <K, V> List<Entry<K, V>> sortEntryToList(Collection<Entry<K, V>> collection) {
 		List<Entry<K, V>> list = new LinkedList<>(collection);
-		Collections.sort(list, new Comparator<Entry<K, V>>() {
+		Collections.sort(list, (o1, o2) -> {
+			V v1 = o1.getValue();
+			V v2 = o2.getValue();
 
-			@SuppressWarnings({"rawtypes", "unchecked"})
-			@Override
-			public int compare(Entry<K, V> o1, Entry<K, V> o2) {
-				V v1 = o1.getValue();
-				V v2 = o2.getValue();
-
-				if (v1 instanceof Comparable) {
-					return ((Comparable) v1).compareTo(v2);
-				} else {
-					return v1.toString().compareTo(v2.toString());
-				}
+			if (v1 instanceof Comparable) {
+				return ((Comparable) v1).compareTo(v2);
+			} else {
+				return v1.toString().compareTo(v2.toString());
 			}
 		});
 		return list;
@@ -2377,12 +2332,7 @@ public class CollUtil {
 		}
 		if (null == hash) {
 			// 默认hash算法,按照元素的hashCode分组
-			hash = new Hash<T>() {
-				@Override
-				public int hash(T t) {
-					return null == t ? 0 : t.hashCode();
-				}
-			};
+			hash = t -> (null == t) ? 0 : t.hashCode();
 		}
 
 		int index;

+ 0 - 26
hutool-core/src/main/java/cn/hutool/core/date/DateTime.java

@@ -312,32 +312,6 @@ public class DateTime extends Date {
 	}
 
 	/**
-	 * 获得当前日期所属季度<br>
-	 * 1:第一季度<br>
-	 * 2:第二季度<br>
-	 * 3:第三季度<br>
-	 * 4:第四季度<br>
-	 *
-	 * @return 第几个季度
-	 * @deprecated 请使用{@link Quarter}代替
-	 */
-	@Deprecated
-	public int season() {
-		return monthStartFromOne() / 4 + 1;
-	}
-
-	/**
-	 * 获得当前日期所属季度<br>
-	 *
-	 * @return 第几个季度 {@link Season}
-	 * @deprecated 请使用{@link #quarterEnum}代替
-	 */
-	@Deprecated
-	public Season seasonEnum() {
-		return Season.of(season());
-	}
-
-	/**
 	 * 获得当前日期所属季度,从1开始计数<br>
 	 *
 	 * @return 第几个季度 {@link Quarter}

+ 0 - 64
hutool-core/src/main/java/cn/hutool/core/date/Season.java

@@ -1,64 +0,0 @@
-package cn.hutool.core.date;
-
-/**
- * 季度枚举<br>
- * 
- * @see #SPRING
- * @see #SUMMER
- * @see #AUTUMN
- * @see #WINTER
- * 
- * @author Looly
- *@deprecated 请使用{@link Quarter}代替
- */
-@Deprecated
-public enum Season {
-
-	/** 春季(第一季度) */
-	SPRING(1),
-	/** 夏季(第二季度) */
-	SUMMER(2),
-	/** 秋季(第三季度) */
-	AUTUMN(3),
-	/** 冬季(第四季度) */
-	WINTER(4);
-	
-	// ---------------------------------------------------------------
-	private int value;
-
-	Season(int value) {
-		this.value = value;
-	}
-
-	public int getValue() {
-		return this.value;
-	}
-
-	/**
-	 * 将 季度int转换为Season枚举对象<br>
-	 * 
-	 * @see #SPRING
-	 * @see #SUMMER
-	 * @see #AUTUMN
-	 * @see #WINTER
-	 * 
-	 * @param intValue 季度int表示
-	 * @return {@link Season}
-	 * @deprecated 使用@{@link Quarter} 替代
-	 */
-	@Deprecated
-	public static Season of(int intValue) {
-		switch (intValue) {
-			case 1:
-				return SPRING;
-			case 2:
-				return SUMMER;
-			case 3:
-				return AUTUMN;
-			case 4:
-				return WINTER;
-			default:
-				return null;
-		}
-	}
-}

+ 17 - 32
hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java

@@ -527,36 +527,6 @@ public class ImgUtil {
 	 * 图像类型转换:GIF=》JPG、GIF=》PNG、PNG=》JPG、PNG=》GIF(X)、BMP=》PNG<br>
 	 * 此方法并不关闭流
 	 *
-	 * @param srcStream  源图像流
-	 * @param formatName 包含格式非正式名称的 String:如JPG、JPEG、GIF等
-	 * @param destStream 目标图像输出流
-	 * @since 3.0.9
-	 * @deprecated 请使用{@link #write(Image, String, ImageOutputStream)}
-	 */
-	@Deprecated
-	public static void convert(ImageInputStream srcStream, String formatName, ImageOutputStream destStream) {
-		write(read(srcStream), formatName, destStream);
-	}
-
-	/**
-	 * 图像类型转换:GIF=》JPG、GIF=》PNG、PNG=》JPG、PNG=》GIF(X)、BMP=》PNG<br>
-	 * 此方法并不关闭流
-	 *
-	 * @param srcImage        源图像流
-	 * @param formatName      包含格式非正式名称的 String:如JPG、JPEG、GIF等
-	 * @param destImageStream 目标图像输出流
-	 * @since 3.0.9
-	 * @deprecated 请使用{@link #write(Image, String, ImageOutputStream)}
-	 */
-	@Deprecated
-	public static void convert(Image srcImage, String formatName, ImageOutputStream destImageStream) {
-		convert(srcImage, formatName, destImageStream, false);
-	}
-
-	/**
-	 * 图像类型转换:GIF=》JPG、GIF=》PNG、PNG=》JPG、PNG=》GIF(X)、BMP=》PNG<br>
-	 * 此方法并不关闭流
-	 *
 	 * @param srcImage        源图像流
 	 * @param formatName      包含格式非正式名称的 String:如JPG、JPEG、GIF等
 	 * @param destImageStream 目标图像输出流
@@ -1425,7 +1395,21 @@ public class ImgUtil {
 	}
 
 	/**
-	 * 写出图像
+	 * 按照目标格式写出图像:GIF=》JPG、GIF=》PNG、PNG=》JPG、PNG=》GIF(X)、BMP=》PNG<br>
+	 * 此方法并不关闭流
+	 *
+	 * @param srcStream  源图像流
+	 * @param formatName 包含格式非正式名称的 String:如JPG、JPEG、GIF等
+	 * @param destStream 目标图像输出流
+	 * @since 5.0.0
+	 */
+	public static void write(ImageInputStream srcStream, String formatName, ImageOutputStream destStream) {
+		write(read(srcStream), formatName, destStream);
+	}
+
+	/**
+	 * 写出图像:GIF=》JPG、GIF=》PNG、PNG=》JPG、PNG=》GIF(X)、BMP=》PNG<br>
+	 * 此方法并不关闭流
 	 *
 	 * @param image     {@link Image}
 	 * @param imageType 图片类型(图片扩展名)
@@ -1438,7 +1422,8 @@ public class ImgUtil {
 	}
 
 	/**
-	 * 写出图像为指定格式
+	 * 写出图像为指定格式:GIF=》JPG、GIF=》PNG、PNG=》JPG、PNG=》GIF(X)、BMP=》PNG<br>
+	 * 此方法并不关闭流
 	 *
 	 * @param image           {@link Image}
 	 * @param imageType       图片类型(图片扩展名)

+ 0 - 16
hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java

@@ -2501,22 +2501,6 @@ public class FileUtil {
 	 * @param <T>           集合类型
 	 * @param readerHandler Reader处理类
 	 * @param path          文件的绝对路径
-	 * @param charset       字符集
-	 * @return 从文件中load出的数据
-	 * @throws IORuntimeException IO异常
-	 * @deprecated 使用FileUtil#load(String, String, ReaderHandler) 代替
-	 */
-	@Deprecated
-	public static <T> T load(ReaderHandler<T> readerHandler, String path, String charset) throws IORuntimeException {
-		return FileReader.create(file(path), CharsetUtil.charset(charset)).read(readerHandler);
-	}
-
-	/**
-	 * 按照给定的readerHandler读取文件中的数据
-	 *
-	 * @param <T>           集合类型
-	 * @param readerHandler Reader处理类
-	 * @param path          文件的绝对路径
 	 * @return 从文件中load出的数据
 	 * @throws IORuntimeException IO异常
 	 * @since 3.1.1

+ 16 - 53
hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java

@@ -62,7 +62,7 @@ public class MapUtil {
 	 * @since 4.6.3
 	 */
 	public static <K, V> Map<K, V> emptyIfNull(Map<K, V> set) {
-		return (null == set) ? Collections.<K, V>emptyMap() : set;
+		return (null == set) ? Collections.emptyMap() : set;
 	}
 
 	/**
@@ -105,7 +105,7 @@ public class MapUtil {
 	 */
 	public static <K, V> HashMap<K, V> newHashMap(int size, boolean isOrder) {
 		int initialCapacity = (int) (size / DEFAULT_LOAD_FACTOR) + 1;
-		return isOrder ? new LinkedHashMap<K, V>(initialCapacity) : new HashMap<K, V>(initialCapacity);
+		return isOrder ? new LinkedHashMap<>(initialCapacity) : new HashMap<>(initialCapacity);
 	}
 
 	/**
@@ -649,57 +649,26 @@ public class MapUtil {
 	 * @since 3.2.2
 	 */
 	public static <T> Map<T, T> reverse(Map<T, T> map) {
-		return filter(map, new Editor<Map.Entry<T, T>>() {
-			@Override
-			public Entry<T, T> edit(final Entry<T, T> t) {
-				return new Entry<T, T>() {
+		return filter(map, (Editor<Entry<T, T>>) t -> new Entry<T, T>() {
 
-					@Override
-					public T getKey() {
-						return t.getValue();
-					}
+			@Override
+			public T getKey() {
+				return t.getValue();
+			}
 
-					@Override
-					public T getValue() {
-						return t.getKey();
-					}
+			@Override
+			public T getValue() {
+				return t.getKey();
+			}
 
-					@Override
-					public T setValue(T value) {
-						throw new UnsupportedOperationException("Unsupported setValue method !");
-					}
-				};
+			@Override
+			public T setValue(T value) {
+				throw new UnsupportedOperationException("Unsupported setValue method !");
 			}
 		});
 	}
 
 	/**
-	 * 逆转Map的key和value
-	 *
-	 * @param <K> 键类型,目标的值类型
-	 * @param <V> 值类型,目标的键类型
-	 * @param map 被转换的Map
-	 * @return 逆转后的Map
-	 * @deprecated 请使用{@link MapUtil#reverse(Map)} 代替
-	 */
-	@Deprecated
-	public static <K, V> Map<V, K> inverse(Map<K, V> map) {
-		Map<V, K> inverseMap;
-		if (map instanceof LinkedHashMap) {
-			inverseMap = new LinkedHashMap<>(map.size());
-		} else if (map instanceof TreeMap) {
-			inverseMap = new TreeMap<>();
-		} else {
-			inverseMap = new HashMap<>(map.size());
-		}
-
-		for (Entry<K, V> entry : map.entrySet()) {
-			inverseMap.put(entry.getValue(), entry.getKey());
-		}
-		return inverseMap;
-	}
-
-	/**
 	 * 排序已有Map,Key有序的Map,使用默认Key排序方式(字母顺序)
 	 *
 	 * @param <K> key的类型
@@ -775,7 +744,7 @@ public class MapUtil {
 	 * @return map创建类
 	 */
 	public static <K, V> MapBuilder<K, V> builder() {
-		return builder(new HashMap<K, V>());
+		return builder(new HashMap<>());
 	}
 
 	/**
@@ -815,13 +784,7 @@ public class MapUtil {
 	 */
 	@SuppressWarnings("unchecked")
 	public static <K, V> Map<K, V> getAny(Map<K, V> map, final K... keys) {
-		return filter(map, new Filter<Entry<K, V>>() {
-
-			@Override
-			public boolean accept(Entry<K, V> entry) {
-				return ArrayUtil.contains(keys, entry.getKey());
-			}
-		});
+		return filter(map, (Filter<Entry<K, V>>) entry -> ArrayUtil.contains(keys, entry.getKey()));
 	}
 
 	/**

+ 0 - 17
hutool-core/src/main/java/cn/hutool/core/util/ImageUtil.java

@@ -1,17 +0,0 @@
-package cn.hutool.core.util;
-
-import cn.hutool.core.img.ImgUtil;
-
-/**
- * 图片处理工具类:<br>
- * 功能:缩放图像、切割图像、旋转、图像类型转换、彩色转黑白、文字水印、图片水印等 <br>
- * 参考:http://blog.csdn.net/zhangzhikaixinya/article/details/8459400
- * 
- * @author Looly
- * @deprecated 请使用{@link ImgUtil}
- */
-@Deprecated
-public class ImageUtil extends ImgUtil{
-
-	
-}

+ 0 - 204
hutool-core/src/main/java/cn/hutool/core/util/PinyinUtil.java

@@ -1,204 +0,0 @@
-package cn.hutool.core.util;
-
-import cn.hutool.core.exceptions.UtilException;
-import cn.hutool.core.text.StrBuilder;
-
-/**
- * 拼音工具类<br>
- * 注意:部分拼音并不准确,例如:怡
- * 
- * @author looly
- * @since 4.0.7
- * @deprecated 此工具不再建议使用,因为某些汉字拼音不准确且无法处理多音字,建议使用Jpinyin或Pinyin4j
- */
-@Deprecated
-public class PinyinUtil {
-	
-	/** 汉字对应ascii范围 */
-	private static int[] pinyinValue = new int[] { -20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242, -20230, -20051, -20036, -20032, -20026, -20002, -19990, -19986, -19982,
-			-19976, -19805, -19784, -19775, -19774, -19763, -19756, -19751, -19746, -19741, -19739, -19728, -19725, -19715, -19540, -19531, -19525, -19515, -19500, -19484, -19479, -19467, -19289,
-			-19288, -19281, -19275, -19270, -19263, -19261, -19249, -19243, -19242, -19238, -19235, -19227, -19224, -19218, -19212, -19038, -19023, -19018, -19006, -19003, -18996, -18977, -18961,
-			-18952, -18783, -18774, -18773, -18763, -18756, -18741, -18735, -18731, -18722, -18710, -18697, -18696, -18526, -18518, -18501, -18490, -18478, -18463, -18448, -18447, -18446, -18239,
-			-18237, -18231, -18220, -18211, -18201, -18184, -18183, -18181, -18012, -17997, -17988, -17970, -17964, -17961, -17950, -17947, -17931, -17928, -17922, -17759, -17752, -17733, -17730,
-			-17721, -17703, -17701, -17697, -17692, -17683, -17676, -17496, -17487, -17482, -17468, -17454, -17433, -17427, -17417, -17202, -17185, -16983, -16970, -16942, -16915, -16733, -16708,
-			-16706, -16689, -16664, -16657, -16647, -16474, -16470, -16465, -16459, -16452, -16448, -16433, -16429, -16427, -16423, -16419, -16412, -16407, -16403, -16401, -16393, -16220, -16216,
-			-16212, -16205, -16202, -16187, -16180, -16171, -16169, -16158, -16155, -15959, -15958, -15944, -15933, -15920, -15915, -15903, -15889, -15878, -15707, -15701, -15681, -15667, -15661,
-			-15659, -15652, -15640, -15631, -15625, -15454, -15448, -15436, -15435, -15419, -15416, -15408, -15394, -15385, -15377, -15375, -15369, -15363, -15362, -15183, -15180, -15165, -15158,
-			-15153, -15150, -15149, -15144, -15143, -15141, -15140, -15139, -15128, -15121, -15119, -15117, -15110, -15109, -14941, -14937, -14933, -14930, -14929, -14928, -14926, -14922, -14921,
-			-14914, -14908, -14902, -14894, -14889, -14882, -14873, -14871, -14857, -14678, -14674, -14670, -14668, -14663, -14654, -14645, -14630, -14594, -14429, -14407, -14399, -14384, -14379,
-			-14368, -14355, -14353, -14345, -14170, -14159, -14151, -14149, -14145, -14140, -14137, -14135, -14125, -14123, -14122, -14112, -14109, -14099, -14097, -14094, -14092, -14090, -14087,
-			-14083, -13917, -13914, -13910, -13907, -13906, -13905, -13896, -13894, -13878, -13870, -13859, -13847, -13831, -13658, -13611, -13601, -13406, -13404, -13400, -13398, -13395, -13391,
-			-13387, -13383, -13367, -13359, -13356, -13343, -13340, -13329, -13326, -13318, -13147, -13138, -13120, -13107, -13096, -13095, -13091, -13076, -13068, -13063, -13060, -12888, -12875,
-			-12871, -12860, -12858, -12852, -12849, -12838, -12831, -12829, -12812, -12802, -12607, -12597, -12594, -12585, -12556, -12359, -12346, -12320, -12300, -12120, -12099, -12089, -12074,
-			-12067, -12058, -12039, -11867, -11861, -11847, -11831, -11798, -11781, -11604, -11589, -11536, -11358, -11340, -11339, -11324, -11303, -11097, -11077, -11067, -11055, -11052, -11045,
-			-11041, -11038, -11024, -11020, -11019, -11018, -11014, -10838, -10832, -10815, -10800, -10790, -10780, -10764, -10587, -10544, -10533, -10519, -10331, -10329, -10328, -10322, -10315,
-			-10309, -10307, -10296, -10281, -10274, -10270, -10262, -10260, -10256, -10254 };
-
-	private static String[] pinyinStr = new String[] { "a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", "bian", "biao", "bie", "bin", "bing", "bo", "bu",
-			"ca", "cai", "can", "cang", "cao", "ce", "ceng", "cha", "chai", "chan", "chang", "chao", "che", "chen", "cheng", "chi", "chong", "chou", "chu", "chuai", "chuan", "chuang", "chui", "chun",
-			"chuo", "ci", "cong", "cou", "cu", "cuan", "cui", "cun", "cuo", "da", "dai", "dan", "dang", "dao", "de", "deng", "di", "dian", "diao", "die", "ding", "diu", "dong", "dou", "du", "duan",
-			"dui", "dun", "duo", "e", "en", "er", "fa", "fan", "fang", "fei", "fen", "feng", "fo", "fou", "fu", "ga", "gai", "gan", "gang", "gao", "ge", "gei", "gen", "geng", "gong", "gou", "gu",
-			"gua", "guai", "guan", "guang", "gui", "gun", "guo", "ha", "hai", "han", "hang", "hao", "he", "hei", "hen", "heng", "hong", "hou", "hu", "hua", "huai", "huan", "huang", "hui", "hun",
-			"huo", "ji", "jia", "jian", "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu", "ju", "juan", "jue", "jun", "ka", "kai", "kan", "kang", "kao", "ke", "ken", "keng", "kong", "kou", "ku",
-			"kua", "kuai", "kuan", "kuang", "kui", "kun", "kuo", "la", "lai", "lan", "lang", "lao", "le", "lei", "leng", "li", "lia", "lian", "liang", "liao", "lie", "lin", "ling", "liu", "long",
-			"lou", "lu", "lv", "luan", "lue", "lun", "luo", "ma", "mai", "man", "mang", "mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min", "ming", "miu", "mo", "mou", "mu", "na",
-			"nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ni", "nian", "niang", "niao", "nie", "nin", "ning", "niu", "nong", "nu", "nv", "nuan", "nue", "nuo", "o", "ou", "pa", "pai",
-			"pan", "pang", "pao", "pei", "pen", "peng", "pi", "pian", "piao", "pie", "pin", "ping", "po", "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", "qing", "qiong", "qiu", "qu",
-			"quan", "que", "qun", "ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", "ru", "ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang", "sao", "se", "sen", "seng", "sha",
-			"shai", "shan", "shang", "shao", "she", "shen", "sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", "shui", "shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun",
-			"suo", "ta", "tai", "tan", "tang", "tao", "te", "teng", "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo", "wa", "wai", "wan", "wang", "wei", "wen",
-			"weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao", "xie", "xin", "xing", "xiong", "xiu", "xu", "xuan", "xue", "xun", "ya", "yan", "yang", "yao", "ye", "yi", "yin", "ying", "yo",
-			"yong", "you", "yu", "yuan", "yue", "yun", "za", "zai", "zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan", "zhang", "zhao", "zhe", "zhen", "zheng", "zhi", "zhong",
-			"zhou", "zhu", "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi", "zong", "zou", "zu", "zuan", "zui", "zun", "zuo" };
-
-	/**
-	 * 获取所给中文的每个汉字首字母组成首字母字符串
-	 * 
-	 * @param chinese 汉字字符串
-	 * @return 首字母字符串
-	 */
-	public static String getAllFirstLetter(String chinese) {
-		if (StrUtil.isBlank(chinese)) {
-			return StrUtil.EMPTY;
-		}
-
-		int len = chinese.length();
-		final StrBuilder strBuilder = new StrBuilder(len);
-		for (int i = 0; i < len; i++) {
-			strBuilder.append(getFirstLetter(chinese.charAt(i)));
-		}
-
-		return strBuilder.toString();
-	}
-
-	/**
-	 * 获取拼音首字母<br>
-	 * 传入汉字,返回拼音首字母<br>
-	 * 如果传入为字母,返回其小写形式<br>
-	 * 感谢【帝都】宁静 提供方法
-	 * 
-	 * @param ch 汉字
-	 * @return 首字母,小写
-	 */
-	public static char getFirstLetter(char ch) {
-		if (ch >= 'a' && ch <= 'z') {
-			return ch;
-		}
-		if (ch >= 'A' && ch <= 'Z') {
-			return Character.toLowerCase(ch);
-		}
-		final byte[] bys = String.valueOf(ch).getBytes(CharsetUtil.CHARSET_GBK);
-		if (bys.length == 1) {
-			return ch;
-		}
-		int count = (bys[0] + 256) * 256 + bys[1] + 256;
-		if (count < 45217) {
-			return ch;
-		} else if (count < 45253) {
-			return 'a';
-		} else if (count < 45761) {
-			return 'b';
-		} else if (count < 46318) {
-			return 'c';
-		} else if (count < 46826) {
-			return 'd';
-		} else if (count < 47010) {
-			return 'e';
-		} else if (count < 47297) {
-			return 'f';
-		} else if (count < 47614) {
-			return 'g';
-		} else if (count < 48119) {
-			return 'h';
-		} else if (count < 49062) {
-			return 'j';
-		} else if (count < 49324) {
-			return 'k';
-		} else if (count < 49896) {
-			return 'l';
-		} else if (count < 50371) {
-			return 'm';
-		} else if (count < 50614) {
-			return 'n';
-		} else if (count < 50622) {
-			return 'o';
-		} else if (count < 50906) {
-			return 'p';
-		} else if (count < 51387) {
-			return 'q';
-		} else if (count < 51446) {
-			return 'r';
-		} else if (count < 52218) {
-			return 's';
-		} else if (count < 52698) {
-			return 't';
-		} else if (count < 52980) {
-			return 'w';
-		} else if (count < 53689) {
-			return 'x';
-		} else if (count < 54481) {
-			return 'y';
-		} else if (count < 55290) {
-			return 'z';
-		}
-		return ch;
-	}
-	
-	/**
-	 * 汉字转拼音
-	 * <hr>
-	 * example : 张三 zhangsan
-	 * 
-	 * @param chinese 汉字
-	 * @return 对应的拼音
-	 * @since 4.0.11
-	 */
-	public static String getPinYin(String chinese) {
-		final StrBuilder result = StrUtil.strBuilder();
-		String strTemp = null;
-		int len = chinese.length();
-		for (int j = 0; j < len; j++) {
-			strTemp = chinese.substring(j, j + 1);
-			int ascii = getChsAscii(strTemp);
-			if (ascii > 0) {
-				//非汉字
-				result.append((char)ascii);
-			} else {
-				for (int i = pinyinValue.length - 1; i >= 0; i--) {
-					if (pinyinValue[i] <= ascii) {
-						result.append(pinyinStr[i]);
-						break;
-					}
-				}
-			}
-		}
-		return result.toString();
-	}
-
-	//------------------------------------------------------------------------------------------------------- Private method start
-	/**
-	 * 获取汉字对应的ascii码
-	 * @param chs 汉字
-	 * @return ascii码
-	 */
-	private static int getChsAscii(String chs) {
-		int asc = 0;
-		byte[] bytes = chs.getBytes(CharsetUtil.CHARSET_GBK);
-		switch (bytes.length) {
-		case 1:
-			// 英文字符
-			asc = bytes[0];
-			break;
-		case 2:
-			// 中文字符
-			int hightByte = 256 + bytes[0];
-			int lowByte = 256 + bytes[1];
-			asc = (256 * hightByte + lowByte) - 256 * 256;
-			break;
-		default:
-			throw new UtilException("Illegal resource string");
-		}
-		return asc;
-	}
-	//------------------------------------------------------------------------------------------------------- Private method end
-}

+ 0 - 52
hutool-core/src/test/java/cn/hutool/core/util/PinyinUtilTest.java

@@ -1,52 +0,0 @@
-package cn.hutool.core.util;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-@SuppressWarnings("deprecation")
-public class PinyinUtilTest {
-	
-	@Test
-	public void getFirstLetterTest() {
-		char firstLetter = PinyinUtil.getFirstLetter('你');
-		Assert.assertEquals('n', firstLetter);
-		
-		firstLetter = PinyinUtil.getFirstLetter('我');
-		Assert.assertEquals('w', firstLetter);
-		
-//		firstLetter = PinyinUtil.getFirstLetter('怡');
-//		Console.log(firstLetter);
-//		Assert.assertEquals('y', firstLetter);
-	}
-	
-	@Test
-	public void getAllFirstLetterTest() {
-		String allFirstLetter = PinyinUtil.getAllFirstLetter("会当凌绝顶");
-		Assert.assertEquals("hdljd", allFirstLetter);
-		
-		allFirstLetter = PinyinUtil.getAllFirstLetter("一览众山小");
-		Assert.assertEquals("ylzsx", allFirstLetter);
-	}
-	
-	@Test
-	public void getAllFirstLetterTest2() {
-		String allFirstLetter = PinyinUtil.getAllFirstLetter("张三123");
-		Assert.assertEquals("zs123", allFirstLetter);
-	}
-	
-	@Test
-	public void getPinyinTest() {
-		String pinYin = PinyinUtil.getPinYin("会当凌绝顶");
-		Assert.assertEquals("huidanglingjueding", pinYin);
-		
-		pinYin = PinyinUtil.getPinYin("一览众山小");
-		Assert.assertEquals("yilanzhongshanxiao", pinYin);
-		
-//		pinYin = PinyinUtil.getPinYin("怡");
-//		Assert.assertEquals("yi", pinYin);
-		
-		String cnStr = "中文(进一步说明)-(OK)@gitee.com";
-		pinYin = PinyinUtil.getPinYin(cnStr);
-		Assert.assertEquals("zhongwen(jinyibushuoming)-OK@gitee.com", pinYin);
-	}
-}