常用字符串处理工具类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/camary_niu/article/details/79003793
package com.bx.util.commonUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * 字符串处理的工具类
 * @author Administrator
 *
 */
public class Str_util {

	/**
	 * 判断传入字符串是否为空(包括null/"")
	 * @param str
	 * @return
	 */
	public static boolean isEmpty(String str){
		
		return (null == str)||("".equals(str));
	}
	/**
	 * 判断传入字符串是否不为空(包括null/"")
	 * @param str
	 * @return
	 */
	public static boolean isNotEmpty(String str){
		
		return !isEmpty(str);
	}
	/**
	 * 判断传入字符串是否为空白字符串
	 * null/""/"   "三种情况返回true
	 * @param str
	 * @return
	 */
	public static boolean isBlank(String str){
		
		if(isEmpty(str)){
			return true;
		}
		for(int i=0;i<str.length();i++){
			if(!Character.isWhitespace(str.charAt(i))){
				return false;
			}
		}
		return true; 
	}
	/**
	 * 判断传入字符是否不为空白字符串
	 * @param str
	 * @return
	 */
	public static boolean isNotBlank(String str){
		
		return !isBlank(str);
	}
	/**
	 * 裁剪字符串中空白(掐头去尾),调用Character.isWhitespace()可以检测到中文格式下的空格
	 * 输入null返回null,输入""或空白字符串返回""
	 * @param str
	 * @return
	 */
	public static String trim(String str){ 
		
		int start;
		int end;
		if(null==str){
			return null;
		}else if(isBlank(str)){
			return "";
		}
		start = 0;
		end = str.length();
		//检测开头
		for(int i=0;i<str.length();i++){
			if(Character.isWhitespace(str.charAt(i))){
				start++;
			}else{
				break;
			}
		}
		//检测结尾
		for(int j=str.length()-1;j>=0;j--){
			if(Character.isWhitespace(str.charAt(j))){
				end--;
			}else{
				break;
			}
		}
		//切割中间部分
		return str.substring(start, end);
	}
	/**
	 * 裁剪输入字符串的头尾空格并替换中间空白
	 * @param str
	 * @param init
	 * @param target
	 * @return
	 */
	public static String trimAndReplace(String str,String target){ 
		
		//裁剪
		str = trim(str);
		//替换
		str = str.replaceAll(" +", target);
		return str;
	}
	/**
	 * 大小写互换,如果为空返回null
	 * @param str
	 * @return
	 */
	public static String swapCase(String str){
		
		int len;
		if(isEmpty(str)){
			return null;
		}
		len = str.length();
		StringBuffer buffer = new StringBuffer(len);
		for(int i = 0;i<len;i++){
			Character tmp = str.charAt(i);
			if(Character.isUpperCase(tmp)){
				tmp = Character.toLowerCase(tmp);
			}else if(Character.isTitleCase(tmp)){
				tmp = Character.toLowerCase(tmp);
			}else{
				tmp = Character.toUpperCase(tmp);
			}
			buffer.append(tmp.toString());
		}
		return buffer.toString();
	}
	
	/**
	 *根据指定字符分割字符串返回字符串数组
	 *考虑一下几种情况
	 * <pre>
      * StringUtil.split(null, *)         = null
      * StringUtil.split("", *)           = []
      * StringUtil.split("a.b.c", '.')    = ["a", "b", "c"]
      * StringUtil.split("a..b.c", '.')   = ["a", "b", "c"]
      * StringUtil.split("a:b:c", '.')    = ["a:b:c"]
      * StringUtil.split("a b c", ' ')    = ["a", "b", "c"]
      * </pre>
	 * @param str
	 * @param splitChar
	 * @return
	 */
	public static String[] split(String str,char splitChar){
		
		if(null == str){
			return null;
		}
		if("".equals(str)){
			return new String[]{};
		}
		List<String> list = new ArrayList<String>();
		int start =0;
		boolean flag = false;
		for(int i=0;i<str.length();i++){
			if(str.charAt(i)==splitChar){
				if(flag){
					String sub = str.substring(start, i);
					list.add(sub);
					flag = false;
				}
				start = i+1;
				continue;
			}
			if(i==str.length()-1){
				String sub = str.substring(start, str.length());
				list.add(sub);
			}
			flag = true;
		}
		return list.toArray(new String[list.size()]);
	}
	/**
	 * 删除传入字符串中的空白(包括了上面的裁剪)
	 * @param str
	 * @return
	 */
	public static String deleteWhiteSpace(String str){
		
		if(isEmpty(str)){
			return null;
		}
		int len = str.length();
		StringBuffer buffer = new StringBuffer(len);
		int i = 0;
		while(i<str.length()){
			if(!Character.isWhitespace(str.charAt(i))){
				Character c = str.charAt(i);
				buffer.append(c);
			}
			i++;
		}
		return buffer.toString();
	}
}

猜你喜欢

转载自blog.csdn.net/camary_niu/article/details/79003793