Skip to content

Commit

Permalink
sync 2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
looly committed Aug 20, 2014
1 parent c264200 commit 37ba464
Show file tree
Hide file tree
Showing 17 changed files with 534 additions and 63 deletions.
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.xiaoleilu</groupId>
<artifactId>hutool</artifactId>
<version>1.1.1</version>
<version>2.0.0</version>
<name>hutool</name>
<description>提供最基础的工具类</description>
<url>https://github.com/looly/hutool</url>
Expand Down Expand Up @@ -43,8 +43,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/xiaoleilu/hutool/ClassUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ public boolean accept(File pathname) {
* 那class里面com开头的class类也会被扫描进去,其实名称后面或前面需要一个 ".",来添加包的特征
*
* @param packageName
* @return
* @return 格式化后的包名
*/
private static String getWellFormedPackageName(String packageName) {
return packageName.lastIndexOf(StrUtil.DOT) != packageName.length() - 1 ? packageName + StrUtil.DOT : packageName;
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/xiaoleilu/hutool/CollectionUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public static <T> String join(T[] array, String conjunction) {
* @param colls 集合数组
* @return 分页后的段落内容
*/
@SafeVarargs
public static <T> List<T> sortPageAll(int pageNo, int numPerPage, Comparator<T> comparator, Collection<T>... colls) {
final List<T> result = new ArrayList<T>();
for (Collection<T> coll : colls) {
Expand All @@ -98,6 +99,7 @@ public static <T> List<T> sortPageAll(int pageNo, int numPerPage, Comparator<T>
* @param colls 集合数组
* @return 分业后的段落内容
*/
@SafeVarargs
public static <T> List<T> sortPageAll2(int pageNo, int numPerPage, Comparator<T> comparator, Collection<T>... colls) {
BoundedPriorityQueue<T> queue = new BoundedPriorityQueue<T>(pageNo * numPerPage);
for (Collection<T> coll : colls) {
Expand Down Expand Up @@ -200,6 +202,7 @@ public static <T> ArrayList<T> newArrayList() {
*
* @return ArrayList对象
*/
@SafeVarargs
public static <T> ArrayList<T> newArrayList(T... values) {
ArrayList<T> list = new ArrayList<T>(values.length);
for (T t : values) {
Expand Down Expand Up @@ -267,6 +270,7 @@ public static <T> T[] resize(T[] buffer, int newSize) {
* @param arrays 数组集合
* @return 合并后的数组
*/
@SafeVarargs
public static <T> T[] addAll(T[]... arrays) {
if (arrays.length == 1) {
return arrays[0];
Expand Down
123 changes: 121 additions & 2 deletions src/main/java/com/xiaoleilu/hutool/Conver.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package com.xiaoleilu.hutool;

import java.math.BigDecimal;

import com.xiaoleilu.hutool.exceptions.UtilException;

/**
* 类型转换器
*
Expand Down Expand Up @@ -49,6 +53,29 @@ public static Integer toInt(Object value, Integer defaultValue) {
return defaultValue;
}
}

/**
* 转换为Integer数组<br>
* @param <T>
* @param isIgnoreConvertError 是否忽略转换错误,忽略则给值null
* @param values 被转换的值
* @return 结果
*/
@SafeVarargs
public static <T> Integer[] toIntArray(boolean isIgnoreConvertError, T... values) {
if(CollectionUtil.isEmpty(values)) {
return null;
}
final Integer[] ints = new Integer[values.length];
for(int i = 0; i < values.length; i++) {
final Integer v = toInt(values[i], null);
if(null == v && isIgnoreConvertError == false) {
throw new UtilException(StrUtil.format("Convert [{}] to Integer error!", values[i]));
}
ints[i] = v;
}
return ints;
}

/**
* 转换为long<br>
Expand All @@ -67,11 +94,34 @@ public static Long toLong(Object value, Long defaultValue) {
final String valueStr = value.toString();
if (StrUtil.isBlank(valueStr)) return defaultValue;
try {
return Long.parseLong(valueStr);
return new BigDecimal(valueStr).longValue();
} catch (Exception e) {
return defaultValue;
}
}

/**
* 转换为Long数组<br>
* @param <T>
* @param isIgnoreConvertError 是否忽略转换错误,忽略则给值null
* @param values 被转换的值
* @return 结果
*/
@SafeVarargs
public static <T> Long[] toLongArray(boolean isIgnoreConvertError, T... values) {
if(CollectionUtil.isEmpty(values)) {
return null;
}
final Long[] longs = new Long[values.length];
for(int i = 0; i < values.length; i++) {
final Long v = toLong(values[i], null);
if(null == v && isIgnoreConvertError == false) {
throw new UtilException(StrUtil.format("Convert [{}] to Long error!", values[i]));
}
longs[i] = v;
}
return longs;
}

/**
* 转换为double<br>
Expand All @@ -90,12 +140,35 @@ public static Double toDouble(Object value, Double defaultValue) {
final String valueStr = value.toString();
if (StrUtil.isBlank(valueStr)) return defaultValue;
try {
return Double.parseDouble(valueStr);
return new BigDecimal(valueStr).doubleValue();
} catch (Exception e) {
return defaultValue;
}
}

/**
* 转换为Double数组<br>
* @param <T>
* @param isIgnoreConvertError 是否忽略转换错误,忽略则给值null
* @param values 被转换的值
* @return 结果
*/
@SafeVarargs
public static <T> Double[] toDoubleArray(boolean isIgnoreConvertError, T... values) {
if(CollectionUtil.isEmpty(values)) {
return null;
}
final Double[] doubles = new Double[values.length];
for(int i = 0; i < values.length; i++) {
final Double v = toDouble(values[i], null);
if(null == v && isIgnoreConvertError == false) {
throw new UtilException(StrUtil.format("Convert [{}] to Double error!", values[i]));
}
doubles[i] = v;
}
return doubles;
}

/**
* 转换为Float<br>
* 如果给定的值为空,或者转换失败,返回默认值<br>
Expand All @@ -118,6 +191,29 @@ public static Float toFloat(Object value, Float defaultValue) {
return defaultValue;
}
}

/**
* 转换为Float数组<br>
* @param <T>
* @param isIgnoreConvertError 是否忽略转换错误,忽略则给值null
* @param values 被转换的值
* @return 结果
*/
@SafeVarargs
public static <T> Float[] toFloatArray(boolean isIgnoreConvertError, T... values) {
if(CollectionUtil.isEmpty(values)) {
return null;
}
final Float[] floats = new Float[values.length];
for(int i = 0; i < values.length; i++) {
final Float v = toFloat(values[i], null);
if(null == v && isIgnoreConvertError == false) {
throw new UtilException(StrUtil.format("Convert [{}] to Float error!", values[i]));
}
floats[i] = v;
}
return floats;
}

/**
* 转换为boolean<br>
Expand All @@ -141,6 +237,29 @@ public static Boolean toBool(Object value, Boolean defaultValue) {
return defaultValue;
}
}

/**
* 转换为Boolean数组<br>
* @param <T>
* @param isIgnoreConvertError 是否忽略转换错误,忽略则给值null
* @param values 被转换的值
* @return 结果
*/
@SafeVarargs
public static <T> Boolean[] toBooleanArray(boolean isIgnoreConvertError, T... values) {
if(CollectionUtil.isEmpty(values)) {
return null;
}
final Boolean[] bools = new Boolean[values.length];
for(int i = 0; i < values.length; i++) {
final Boolean v = toBool(values[i], null);
if(null == v && isIgnoreConvertError == false) {
throw new UtilException(StrUtil.format("Convert [{}] to Boolean error!", values[i]));
}
bools[i] = v;
}
return bools;
}

// ----------------------------------------------------------------------- 全角半角转换
/**
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/com/xiaoleilu/hutool/DateTime.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,25 @@ public static DateTime parse(Date date) {
return new DateTime(date);
}

/**
* 当前时间
*/
public DateTime() {
super();
}

/**
* 给定日期的构造
* @param date 日期
*/
public DateTime(Date date) {
this(date.getTime());
}

/**
* 给定日期毫秒数的构造
* @param timeMillis 日期毫秒数
*/
public DateTime(long timeMillis) {
super(timeMillis);
}
Expand All @@ -35,4 +46,11 @@ public DateTime(long timeMillis) {
public String toString() {
return DateUtil.formatDateTime(this);
}

/**
* @return 输出精确到毫秒的标准日期形式
*/
public String toMsStr() {
return DateUtil.format(this, DateUtil.NORM_DATETIME_MS_PATTERN);
}
}
14 changes: 9 additions & 5 deletions src/main/java/com/xiaoleilu/hutool/DateUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@ public class DateUtil {
public final static String NORM_DATE_PATTERN = "yyyy-MM-dd";
/** 标准时间格式 */
public final static String NORM_TIME_PATTERN = "HH:mm:ss";
/** 标准日期时间格式 */
public final static String NORM_DATETIME_NO_SS_PATTERN = "yyyy-MM-dd HH:mm";
/** 标准日期时间格式 */
/** 标准日期时间格式,精确到分 */
public final static String NORM_DATETIME_MINUTE_PATTERN = "yyyy-MM-dd HH:mm";
/** 标准日期时间格式,精确到秒 */
public final static String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
/** 标准日期时间格式,精确到毫秒 */
public final static String NORM_DATETIME_MS_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";
/** HTTP头中日期时间格式 */
public final static String HTTP_DATETIME_PATTERN = "EEE, dd MMM yyyy HH:mm:ss z";

Expand Down Expand Up @@ -256,8 +258,10 @@ public static DateTime parse(String dateStr) {
return parseDate(dateStr);
}else if(length == NORM_TIME_PATTERN.length()){
return parseTime(dateStr);
}else if(length == NORM_DATETIME_NO_SS_PATTERN.length()){
return parse(dateStr, NORM_DATETIME_NO_SS_PATTERN);
}else if(length == NORM_DATETIME_MINUTE_PATTERN.length()){
return parse(dateStr, NORM_DATETIME_MINUTE_PATTERN);
}else if(length == NORM_DATETIME_MS_PATTERN.length()){
return parse(dateStr, NORM_DATETIME_MS_PATTERN);
}
}catch(Exception e) {
throw new UtilException(StrUtil.format("Parse [{}] with format normal error!", dateStr));
Expand Down
15 changes: 0 additions & 15 deletions src/main/java/com/xiaoleilu/hutool/FileUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -408,21 +408,6 @@ public static OutputStream getOutputStream(String path) throws IOException {
return new FileOutputStream(touch(path));
}

/**
* 清空一个目录
* @param dirPath 需要删除的文件夹路径
*/
public static void cleanDir(String dirPath){
File dir = new File(dirPath);
if(dir.exists() && dir.isDirectory()){
File[] files = dir.listFiles();
for (File file : files) {
if(file.isDirectory()) cleanDir(file.getAbsolutePath());
file.delete();
}
}
}

/**
* 获得一个文件读取器
* @param path 绝对路径
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/xiaoleilu/hutool/HtmlUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*/
public class HtmlUtil {

public static final String RE_HTML_MARK = "(<.*?>)|(<[\\s]*?/.*?>)|(<.*?/[\\s]*?>)";
public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)";
public static final String RE_SCRIPT = "<[\\s]*?script[^>]*?>.*?<[\\s]*?\\/[\\s]*?script[\\s]*?>";

private static final char[][] TEXT = new char[64][];
Expand Down
Loading

0 comments on commit 37ba464

Please sign in to comment.