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();
}
}
常用字符串处理工具类
最新推荐文章于 2024-08-23 23:26:12 发布