package com.string;
import java.util.regex.Pattern;
/**
* @author zx
*
* @since 2013-10-28
*/
public class StringUtil {
/**
* 判断字符串是否为整数
*
* @param str
* 传入字符串
* @return 是整数返回true,否则返回false
*/
public static boolean isInteger(String str) {
if (isBlank(str))
return false;
Pattern pattern = Pattern.compile("^[-\\+]?[1-9][\\d]*$");
return pattern.matcher(str).matches();
}
/**
* 判断是否为浮点数,包括double和float
*
* @param str
* 传入字符串
* @return 是浮点数返回true,否则返回false
*/
public static boolean isDouble(String str) {
if (isBlank(str))
return false;
Pattern pattern = Pattern.compile("^[-\\+]?[1-9][\\d]*[.]?[\\d]+$");
return pattern.matcher(str).matches();
}
/**
* 判断输入的字符串是否符合Email样式.
*
* @param str
* 传入字符串
* @return 是Email样式返回true,否则返回false
*/
public static boolean isEmail(String str) {
if (isBlank(str))
return false;
Pattern pattern = Pattern
.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
return pattern.matcher(str).matches();
}
/**
* 判断输入的字符串是否为纯汉字,不是包含汉子或者其他字符
*
* @param str
* 传入字符串
* @return 如果是汉字返回true,否则返回false
*/
public static boolean isChinese(String str) {
if (isBlank(str))
return false;
Pattern pattern = Pattern.compile("[\u0391-\uFFE5]+$");
return pattern.matcher(str).matches();
}
/**
* 判断是否为空,包括null和"",其中" "无论有多少空格都返回true,表示为空
*
* @param str
* 传入字符串
* @return 为空返回true,否则返回false
*/
public static boolean isBlank(String str) {
return str == null || str.trim().length() == 0;
}
}
2
顶
2
踩
分享到:
2014-01-28 10:45
浏览 1894
评论
3 楼
zx_code
2014-02-10
kidneyball 写道
据目测,0.5貌似过不了这里的isDouble测试呀。为什么不允许数字0打头呢,007也算是个整数吧。如果是特殊需求,应该把这个特性写到javadoc里。
嗯,有待修改。
2 楼
kidneyball
2014-01-30
另外,判断字符串为空,推荐使用isEmpty()方法,更为直观。而不是length() == 0
1 楼
kidneyball
2014-01-30
据目测,0.5貌似过不了这里的isDouble测试呀。为什么不允许数字0打头呢,007也算是个整数吧。如果是特殊需求,应该把这个特性写到javadoc里。