/******************************************
* 类描写叙述:字符串工具类 类名称:String_U
*
******************************************/
public class String_U {
private String_U() {
}
/**
* 检查手机号是否合法
*
* @param phoneNum
* @return boolean true 为手机号合法。false为手机号不合法
*/
public static boolean isMobileNum(String phoneNum) {
if (TextUtils.isEmpty(phoneNum))
return false;
Pattern p = Pattern
.compile("((\\+86|86)?((13[0-9]\\d{8})|(15[0-9]\\d{8})|(170\\d{8})|(18[0-9]\\d{8})))");
Matcher m = p.matcher(phoneNum);
if (m.matches()) {
return true;
} else {
return false;
}
}
public static boolean isEmail(String email) {
boolean tag = true;
// final String pattern1 =
// "^[0-9a-z][a-z0-9\\._-]{1,}@[a-z0-9-]{1,}[a-z0-9]\\.[a-z\\.]{1,}[a-z]$";
final String pattern1 = "^[\\w][a-z0-9\\._-]{1,}@[a-z0-9-]{1,}[a-z0-9]\\.[a-z\\.]{1,}[a-z]$";
final Pattern pattern = Pattern.compile(pattern1);
final Matcher mat = pattern.matcher(email);
if (!mat.find()) {
tag = false;
}
return tag;
}
/**
* 设置指定位置字体颜色
*
* @param color
* 16进制色值
* @param text
* 文字
* @param start
* 设置颜色的起始位置
* @param end
* 设置颜色的结束位置
* @return mSpannableString
*/
public static SpannableString getSpecialSpannableString(String color,
String text, int start, int end) {
SpannableString mSpannableString = new SpannableString(text);
// 设置字体前景色
mSpannableString.setSpan(
new ForegroundColorSpan(Color.parseColor(color)), start, end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return mSpannableString;
}
/**
* 验证密码是否符合规定
*
* @param password
* @return boolean true为密码合法,false为密码不合法
*/
public static boolean checkPassword(String password) {
if (password == null || password.length() > 16 || password.length() < 6) {
return false;
}
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]{6,16}$");
Matcher invalid = pattern.matcher(password);
return invalid.matches();
}
/**
* 字符串安全比較
*
* @param lStr
* 左側String
* @param rStr
* 右側String
* @return boolean true 两字符串内容一致。false两字符串内容不一致
*/
public static boolean equal(String lStr, String rStr) {
if (lStr == null) {
return lStr == rStr;
}
return lStr.equals(rStr);
}
/**
* 计算百分比
*
* @param y
* @param z
* @return
*/
public static String myPercent(int y, int z) {
String percent = null;// 接受百分比的值
float baiy = y;
float baiz = z;
float fen = baiy / baiz;
// NumberFormat nf = NumberFormat.getPercentInstance(); 凝视掉的也是一种方法
// nf.setMinimumFractionDigits( 2 ); 保留到小数点后几位
DecimalFormat df1 = new DecimalFormat("##%"); // ##.00%
// 百分比格式,后面不足2位的用0补齐
// baifenbi=nf.format(fen);
percent = df1.format(fen);
return percent;
}
/***
* 切割指定文本。并在指定文本前追加实心圆圈或序号
*
* @param text
* 指定文本
* @param separator
* 分隔符
* @param circle
* 条目符号(例:“•”)
* @param isAppendNum
* 是否加入序号
* @return
*/
public static String separatorString(String text, String separator,
String circle, boolean isAppendNum) {
if (TextUtils.isEmpty(text)) {
return "";
}
StringBuffer strBuffer = new StringBuffer();
if (TextUtils.isEmpty(separator)) {
// 没有分隔符
strBuffer.append(circle);
strBuffer.append(text);
} else {
String[] strArray = text.split(separator);
for (int i = 0; i < strArray.length; i++) {
if (!TextUtils.isEmpty(circle)) {
// 加入条目符号
strBuffer.append(circle);
}
if (isAppendNum) {
// 加入序号
strBuffer.append((i - 1) + "、");
}
strBuffer.append(strArray[i]);
if (i != strArray.length - 1) {
// 加入换行
strBuffer.append("\n");
}
}
}
return strBuffer.toString();
}
}