* 类描写叙述:字符串工具类 类名称:String_U

/******************************************
 * 类描写叙述:字符串工具类 类名称: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("
");
				}
			}
		}

		return strBuffer.toString();
	}

}

原文地址:https://www.cnblogs.com/mengfanrong/p/5102354.html