字符串工具类

package com.accphr.util;


/**
 * 字符串处理工具类,提供了一些对字符串进行处理的静态方法
 */
public final class StringUtils {
	/* 私有的构造方法,保证此类不能外部被实例化 */
	private StringUtils() {
	}

	/**
	 * 如果字符串等于null、空白字符(“”)、空格(“ ”)则返回true,否则返回false
	 * 
	 * @param str
	 *            String 要比较的字符串
	 * @return boolean
	 */
	public static boolean isBlank(String str) {
		boolean b = true;
		if (null == str) {
			return b;
		}

		str = str.trim(); // 去掉空格
		if (!str.equals("")) { // 如果不等于“”空字符则返回值为false
			b = false;
		}
		return b;
	}

	/**
	 * 如果字符串不等于null、空白字符(“”)、空格(“ ”)则返回true,否则返回false
	 * 
	 * @param str
	 *            String 要比较的字符串
	 * @return boolean
	 */
	public static boolean isNotBlank(String str) {
		return (!isBlank(str));
	}

	/**
	 * 如果字符串等于null、空白字符("")、空格(" ")则返回空白字符(""), 否则返回一个将字符串的前后空格去掉的字符串
	 * 
	 * @param str
	 *            String 要处理的字符串
	 * @return String
	 */
	public static String trimToBlank(String str) {
		String s = "";
		if (isBlank(str)) {
			return s;
		}
		s = str.trim();
		return s;
	}

	/**
	 * 如果字符串等于null、空白字符("")、空格(" ")则返回null, 否则返回一个将字符串的前后空格去掉的字符串
	 * 
	 * @param str
	 *            String 要处理的字符串
	 * @return String
	 */
	public static String trimToNull(String str) {
		String s = null;
		if (isBlank(str)) {
			return s;
		}
		s = str.trim();
		return s;
	}

	/**
	 * 将对象使用指定的分隔符转换成一个字符串,
	 * 
	 * @param delimiter
	 *            分隔符
	 * @param ignore
	 *            为true忽略null值
	 * @param objs
	 *            分隔对象
	 * @return
	 */
	public static String join(String delimiter, boolean ignore, Object... objs) {
		if (objs == null || 0 == objs.length) {
			return "";
		}
		StringBuffer bf = new StringBuffer();
		Object obj = null;
		int ind = 0;
		for (int i = 0; i < objs.length; i++) {
			obj = objs[i];
			if (null == obj && true == ignore) {
				continue;
			} else {
				if (0 == ind) {
					bf.append(obj);
				} else {
					bf.append(delimiter).append(obj);
				}
				ind++;
			}
		}
		return bf.toString();
	}

	/**
	 * 使用指定的分隔符将字符串分割成一个字符串数组
	 * 
	 * @param input
	 *            字符串
	 * @param delimiter
	 *            分隔符
	 * @return
	 */
	public static String[] split(String input, String delimiter) {
		String[] values = new String[] { input };
		if (null != input && null != delimiter
				&& -1 != input.indexOf(delimiter)) {
			values = input.split(delimiter);
		}
		return values;
	}

	/**
	 * 将特殊字符(<、>、"、'等)转换成对应的实体
	 * 
	 * @param s
	 *            需要转换的字符串
	 * @return
	 */
	public static final String htmlEncode(String s) {
		return htmlEncode(s, true);
	}

	/**
	 * 将特殊字符(<、>、"、'等)转换成对应的实体
	 * 
	 * @param s
	 *            需要转换的字符串
	 * @param encodeSpecialChars
	 *            对特殊字符进行编码
	 * @return
	 */
	public static final String htmlEncode(String s, boolean encodeSpecialChars) {
		s = trimToBlank(s);
		StringBuffer str = new StringBuffer();
		for (int j = 0; j < s.length(); j++) {
			char c = s.charAt(j);
			if (c < '\200') {
				switch (c) {
				case 34: // '"'
					str.append(""");
					break;

				case 38: // '&'
					str.append("&");
					break;

				case 60: // '<'
					str.append("<");
					break;

				case 62: // '>'
					str.append(">");
					break;

				default:
					str.append(c);
					break;
				}
				continue;
			}
			if (encodeSpecialChars && c < '\377') {
				String hexChars = "0123456789ABCDEF";
				int a = c % 16;
				int b = (c - a) / 16;
				String hex = (new StringBuilder()).append("").append(
						hexChars.charAt(b)).append(hexChars.charAt(a))
						.toString();
				str.append((new StringBuilder()).append("&#x").append(hex)
						.append(";").toString());
			} else {
				str.append(c);
			}
		}

		return str.toString();
	}

	/**
	 * 在每一个类里面写一个main方法,可以很方便的 对这个类进行测试
	 * 
	 * @param args
	 *            String[]
	 */
	public static void main(String[] args) {
		// String s = null;
		// System.out.println(isBlank(s));
		// System.out.println(isNotBlank(s));
		//
		// s = "";
		// System.out.println(isBlank(s));
		// System.out.println(isNotBlank(s));
		//
		// s = " ";
		// System.out.println(isBlank(s));
		// System.out.println(isNotBlank(s));
		//
		// s = " ";
		// System.out.println("[" + trimToNull(s) + "]");
		// System.out.println("[" + trimToBlank(s) + "]");

		// System.out.println(StringUtils.join(",", "ddd", null, "fff"));

		// String input = "aa , bb, ccc";
		// String[] arr = StringUtils.split(null, "z");
		// System.out.println(StringUtils.join("-", arr));
		// System.out.println(arr.length);
		// for (int i = 0; i < arr.length; i++) {
		// System.out.println(arr[i]);
		// }
		//
		// System.out.println(StringUtils.join("-", (Object[]) new Integer[] {
		// 11,
		// 22 }));

		// System.out.println(StringUtils.join(",", false, new Object[] { null,
		// "a", 2, 3, null }));

		// String str = "<br>?";
		// System.out.println(htmlEncode(str, true));
		// System.out.println('\377');
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值