org.sdn.api.utils.StringUtils Maven / Gradle / Ivy
package org.sdn.api.utils;
import java.util.HashMap;
import java.util.Map;
/**
* 字符串工具类。
*
* @author carver.gu
* @since 1.0, Sep 12, 2009
*/
public abstract class StringUtils {
private StringUtils() {}
/**
* 检查指定的字符串是否为空。
*
* - SysUtils.isEmpty(null) = true
* - SysUtils.isEmpty("") = true
* - SysUtils.isEmpty(" ") = true
* - SysUtils.isEmpty("abc") = false
*
*
* @param value 待检查的字符串
* @return true/false
*/
public static boolean isEmpty(String value) {
int strLen;
if (value == null || (strLen = value.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(value.charAt(i)) == false)) {
return false;
}
}
return true;
}
public static boolean isEmpty(Object str) {
return (str == null || "".equals(str));
}
/**
* 检查对象是否为数字型字符串,包含负数开头的。
*/
public static boolean isNumeric(Object obj) {
if (obj == null) {
return false;
}
char[] chars = obj.toString().toCharArray();
int length = chars.length;
if(length < 1) {
return false;
}
int i = 0;
if(length > 1 && chars[0] == '-') {
i = 1;
}
for (; i < length; i++) {
if (!Character.isDigit(chars[i])) {
return false;
}
}
return true;
}
/**
* 检查指定的字符串列表是否不为空。
*/
public static boolean areNotEmpty(String... values) {
boolean result = true;
if (values == null || values.length == 0) {
result = false;
} else {
for (String value : values) {
result &= !isEmpty(value);
}
}
return result;
}
/**
* 把通用字符编码的字符串转化为汉字编码。
*/
public static String unicodeToChinese(String unicode) {
StringBuilder out = new StringBuilder();
if (!isEmpty(unicode)) {
for (int i = 0; i < unicode.length(); i++) {
out.append(unicode.charAt(i));
}
}
return out.toString();
}
/**
* 过滤不可见字符
*/
public static String stripNonValidXMLCharacters(String input) {
if (input == null || ("".equals(input))) {
return "";
}
StringBuilder out = new StringBuilder();
char current;
for (int i = 0; i < input.length(); i++) {
current = input.charAt(i);
if ((current == 0x9) || (current == 0xA) || (current == 0xD)
|| ((current >= 0x20) && (current <= 0xD7FF))
|| ((current >= 0xE000) && (current <= 0xFFFD))
|| ((current >= 0x10000) && (current <= 0x10FFFF))) {
out.append(current);
}
}
return out.toString();
}
public static Map getUrlParams(String param) {
Map map = new HashMap();
if ("".equals(param) || null == param) {
return map;
}
if (param.contains("?")) {
int len = param.indexOf("?");
param = param.substring(len+1,param.length());
}
String[] params = param.split("&");
for (int i = 0; i < params.length; i++) {
String[] p = params[i].split("=");
if (p.length == 2) {
if (p[1] == null || StringUtils.isEmpty(p[1]) || p[1].equals("null")) {
continue;
}
map.put(p[0], p[1]);
}
}
return map;
}
public static String parseServers(String servers) {
StringBuilder stringBuffer = new StringBuilder();
if (org.springframework.util.StringUtils.isEmpty(servers)) {
return "";
} else {
servers = servers.replaceAll(";", ",");
if (servers.startsWith("$")) {
String[] split;
if (servers.indexOf(",") > 0) {
split = servers.split(",");
} else {
split = servers.split(";");
}
for (int i = 0; i < split.length; i++) {
String kafkaString = split[i].replaceAll("\\$", "").replaceAll("\\{", "").replaceAll("\\}", "");
stringBuffer
.append(System.getenv(kafkaString.split(":")[0]))
.append(":")
.append(System.getenv(kafkaString.split(":")[1]));
if (i != split.length - 1) {
stringBuffer
.append(",");
}
}
} else {
return servers;
}
}
return stringBuffer.toString();
}
}