java开发中的工具函数(Util)---字符串处理(二)

日期: 2016-8-25


内容: 字符串处理的基本方法。


一、 J2EE开发过程中的一些字符串操作工具类整理;

1、源代码:

package com.onlyone.www.util.util_char;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 字符及其字符串操作工具类
 * @author cj(copy jobs)
 *
 */
public class StringOperationUtil {

	/**
	 * 功能描述: 将执行的字符串转换为用下划线分割的字符串:
	 * 比如: HelloWOrld转换之后的字符串就是hello_world;
	 * @param targetStr 需要转换的字符串
	 * @return 返回结果
	 */
	public static String camelToSnake(final String targetStr) {
		String convertedStr =
				targetStr.replaceAll("([A-Z]+)([A-Z][a-z])", "$1_$2").replaceAll("([a-z])([A-Z])", "$1_$2"); 
		return convertedStr.toLowerCase();
	}
	
	/**
	 * 功能描述: 判断一个字符串是不是为空,当为空的时候就返回true否则返回false
	 * @param value 需要判断的字符串
	 * @return 返回boolean值
	 */
	public static boolean isEmpty(final String value)
	{
		return (value == "") || (value.length() == 0);
	}
	
	/**
	 * 功能描述: 判断一个字符串是不是为空,当为空的时候就返回false否则返回true
	 * @param value
	 * @return
	 */
	public static boolean isNotEmpty(final String value)
	{
		return (value != null) && (value.length() > 0);
	}
	
	/**
	 * 功能描述: 假如字符串不为空或者全部为空格组成的话返回false,假如为空字符串的话返回true
	 * @param value 判断的字符串
	 * @return 返回的boolean值
	 */
	public static boolean isBlankOrWhSpace(final String value)
	{
		return isEmpty(value) || value.matches("^\\s$");
	}
	
	/**
	 * 判断字符串是不是为空:返回false,否则假如为空或者或者全部由空格组成返回true
	 * @param value
	 * @return
	 */
	public static boolean isBlankOrAllSpace(final String value)
	{
		return isEmpty(value) || value.matches("^\\s|^[\\s\\p{Zs}]+$");
	}
	
	/**
	 * 判断指定的对象是不是为空:这里没有局限于一个字符串了,而是可以传递一个对象
	 * @param str
	 * @return
	 */
	public static boolean isEmpty(final Object str)
	{
		return (str == null) || ((str instanceof CharSequence) && str.toString().isEmpty());
	}
	
	
	/**
	 * 功能描述: 将指定的字符串转换为驼峰式的大小写:比如Hello_world_welcome_to_home---->helloWorldWelcomeToHome;
	 * @param targetStr 需要转化的字符创
	 * @return 转换之后的字符串
	 */
	public static String snakeToCamel(final String targetStr)
	{
		Pattern pattern = Pattern.compile("_([a-z])");
		Matcher matcher = pattern.matcher(targetStr.toLowerCase());
		
		//初始化一个字符容器
		StringBuffer sb = new StringBuffer(targetStr.length());
		
		while(matcher.find())
		{
			matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
		}
		matcher.appendTail(sb);
		
		return sb.toString();
	}
	
	/**
	 * 将字符串转换为无隐式转换
	 * @param value
	 * @return
	 * @throws ClassCastException
	 */
	public static String valueOf(final Object value) throws ClassCastException {
		if (value == null) {
			return null;
		} else if (value instanceof CharSequence) {
			if (value.toString().isEmpty()) {
				return null;
			}
			return value.toString();
		} else {
			throw new ClassCastException();
		}
	}
	
	/**
	 * 功能描述: 将指定的字符串用指定的连接字符连接起来
	 * @param slashStr
	 * @param strings
	 * @return
	 */
	public static String combineStr(final String slashStr, final String... args)
	{
		//初始化一个放字符的容器
		StringBuilder sb = new StringBuilder();
		
		for(int i = 0;i<args.length;i++)
		{
			if(!isBlankOrWhSpace(args[i]))
			{
				if(i == args.length - 1)
				{
					//假如是最后一个字符串就直接添加在末尾而不需要添加分割符
					sb.append(args[i]);
				}
				else
				{
					//在添加字符串之后再添加指定的分割符号
					sb.append(args[i]).append(slashStr);
				}
			}
		}
		return sb.toString().trim();
	}
}

aaa

2、源代码测试:

package com.onlyone.www.util.util_char;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.onlyone.www.util.util_date.DateOperationUtil;

/**
 * 字符串实体类测试
 * @author peixun
 *
 */
public class StringOperationUtilTest {

	//初始化一个变量
	public StringOperationUtil stringOperationUtil;
	
	@Before
	public void before()
	{
		System.out.println("准备执行测试: "+StringOperationUtil.class);
		//将变量实例化
		stringOperationUtil = new StringOperationUtil();
	}
	
	@After
	public void after()
	{
		System.out.println(StringOperationUtil.class+"类执行完成!");
	}
	
	@Test
	public void testDateOperationUtil()
	{
		//调用函数
		String test1 = stringOperationUtil.camelToSnake("HelloWorldFuckYoueMother");
		
		//打印输出
		System.out.println(test1);
	}
	
	@Test
	public void testDateOperationUtil_isEmpty()
	{
		//调用函数:不为空的情况
		boolean test1 = stringOperationUtil.isEmpty("helloworld!");
		
		//为空的情况
		boolean test2 = stringOperationUtil.isEmpty("");
		
		//打印输出
		System.out.println("字符串不为空的时候应该打印出 false :  "+test1+"\n"+"字符串为空的时候应该打印出 true : "+test2);
	}
	
	@Test
	public void testDateOperationUtil_isNotEmpty()
	{
		//调用函数:不为空的情况
		boolean test1 = stringOperationUtil.isNotEmpty("helloworld!");
		
		//为空的情况
		boolean test2 = stringOperationUtil.isNotEmpty("");
		
		//打印输出
		System.out.println("字符串不为空的时候应该打印出 true :  "+test1+"\n"+"字符串为空的时候应该打印出 false : "+test2);
	}
	
	@Test
	public void testDateOperationUtil_isBlankOrWhSpace()
	{
		//调用函数:不为空的情况
		boolean test1 = stringOperationUtil.isBlankOrWhSpace("helloworld!");
		
		//为全部空格的情况
		boolean test2 = stringOperationUtil.isBlankOrWhSpace("    ");
		
		//为全部空的情况
		boolean test3 = stringOperationUtil.isBlankOrWhSpace("");
		
		//打印输出
		System.out.println("字符串不为空的时候应该打印出 false :  "+test1+"\n"+"字符串为空格组成的时候应该打印出 false : "+test2+"\n"+"字符串为空的时候应该打印出 true : "+test3);
	
		//打印的结果
		//字符串不为空的时候应该打印出 false :  false
		//字符串为空格组成的时候应该打印出 false : false
		//字符串为空的时候应该打印出 true : true
	}
	
	@Test
	public void testDateOperationUtil_isBlankOrAllSpace()
	{
		//调用函数:不为空的情况
		boolean test1 = stringOperationUtil.isBlankOrAllSpace("helloworld!");
		
		//为全部空格的情况
		boolean test2 = stringOperationUtil.isBlankOrAllSpace("    ");
		
		//为全部空的情况
		boolean test3 = stringOperationUtil.isBlankOrAllSpace("");
		
		//打印输出
		System.out.println("字符串不为空的时候应该打印出 false :  "+test1+"\n"+"字符串为空格组成的时候应该打印出 false : "+test2+"\n"+"字符串为空的时候应该打印出 true : "+test3);
		
		//打印的结果
		//字符串不为空的时候应该打印出 false :  false
		//字符串为空格组成的时候应该打印出 false : true
		//字符串为空的时候应该打印出 true : true
	}
	
	
	@Test
	public void testDateOperationUtil_isEmptyObject()
	{
		
		//声明一个Integer对象:
		Integer test4 = new Integer(10);
		
		
		//声明一个空的List
		List<Integer> list1 = new ArrayList<Integer>();
		
		//声明一个空的Map
		Map<String,Object> map = new HashMap<String,Object>();
		
		//判断函数调用
		System.out.println("带值对象调用: "+stringOperationUtil.isEmpty(test4)+"\n不带纸的list调用: "+stringOperationUtil.isEmpty(list1)+"\n不带值得map调用: "+stringOperationUtil.isEmpty(map));
		
		/**************************以下为字符串调用****************************/
		//调用函数:不为空的情况
		boolean test1 = stringOperationUtil.isEmpty("helloworld!");
		
		//为全部空格的情况
		boolean test2 = stringOperationUtil.isEmpty("    ");
		
		//为全部空的情况
		boolean test3 = stringOperationUtil.isEmpty("");
		
		//打印输出
		System.out.println("字符串不为空的时候应该打印出 false :  "+test1+"\n"+"字符串为空格组成的时候应该打印出 false : "+test2+"\n"+"字符串为空的时候应该打印出 true : "+test3);
		
		//打印的结果
		//字符串不为空的时候应该打印出 false :  false
		//字符串为空格组成的时候应该打印出 false : false
		//字符串为空的时候应该打印出 true : true
	}
	
	@Test
	public void testDateOperationUtil_snakeToCamel()
	{
		String testChar = "Hello_world_welcome_to_home";
		//调用函数:不为空的情况
		String test1 = stringOperationUtil.snakeToCamel(testChar);
		
		//打印输出
		System.out.println("将字符串: "+testChar+"\n转换之后的字符串: "+test1);
		
		//运行结果
		//将字符串: Hello_world_welcome_to_home
		//转换之后的字符串: helloWorldWelcomeToHome
	}

	
	@Test
	public void testDateOperationUtil_combineStr()
	{
		//调用函数:不为空的情况
		String test1 = stringOperationUtil.combineStr("_","hello","world","welcome","to","home");
		
		//打印输出
		System.out.println("连接之后的字符串为 : "+test1);
		
		//运行结果
		//将字符串: Hello_world_welcome_to_home
		//转换之后的字符串: helloWorldWelcomeToHome
	}
}






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值