java String字符串相关的方法(可总结到工具类中)
1、如果数据null或者""则替换为new_str
public static String getNotNullStringValue(Object str, String new_str) {
if (isEmpty(str)) {
return new_str;
}
return str.toString();
}
2、判断整形数据null替换new_str
public static int getNotNullIntValue(Object str, int new_str) {
if (isEmpty(str)) {
return new_str;
}
int n_str = 0;
try {
n_str = Integer.parseInt(str.toString());
} catch (NumberFormatException e) {
n_str = new_str;
}
return n_str;
}
3、缩略字符串(不区分中英文字符)
public static String abbr(String str, int length) {
if (isEmpty(str)) {
return "";
}
try {
StringBuilder sb = new StringBuilder();
int currentLength = 0;
for (char c : str.toCharArray()) {
currentLength += String.valueOf(c).getBytes("GBK").length;
if (currentLength <= length - 3) {
sb.append(c);
} else {
sb.append("...");
break;
}
}
return sb.toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
4、截取字符串 并补充后缀
public static String abbr(String str, int len, String suffix) {
if (isEmpty(str)) {
return "";
}
try{
int counterOfDoubleByte = 0;
byte[] b = str.getBytes("GBK");
if(b.length <= len){
return str;
}
for(int i = 0; i < len; i++){
if(b[i] < 0){
counterOfDoubleByte++;
}
}
if(counterOfDoubleByte % 2 == 0){
return new String(b, 0, len, "GBK") + suffix;
}else{
return new String(b, 0, len - 1, "GBK") + suffix;
}
}catch(Exception e){
return "";
}
}
5、替换掉HTML标签方法
public static String replaceHtml(String html) {
if (isBlank(html)){
return "";
}
String regEx = "<.+?>";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(html);
String s = m.replaceAll("");
return s;
}
6、中文转换成unicode码
public static String encodeUnicode(String cnStr) {
String s1 = "";
for (int i = 0; i < cnStr.length(); i++) {
String hexB = Integer.toHexString(cnStr.charAt(i) & 0xffff);
if (hexB.length() <= 2) {
hexB = "00" + hexB;
}
s1 += "\\u" + hexB;
}
return s1;
}
7、unicode码 转换成 中文
public static String decodeUnicode(String unicodeStr) {
int n = unicodeStr.length() / 6;
StringBuilder sb = new StringBuilder(n);
for (int i = 0, j = 2; i < n; i++, j += 6) {
String code = unicodeStr.substring(j, j + 4);
char ch = (char) Integer.parseInt(code, 16);
sb.append(ch);
}
return sb.toString();
}
8、URL编码转换
public static String URIEncoding(String str, String encoding) throws UnsupportedEncodingException {
return URLDecoder.decode(str, encoding);
}
9、获取字符串css信息
public static String getCssStyle(String str) {
String return_str = "";
if (!StrUtils.isEmpty(str)) {
String pattern = "style=('(.*?)')";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
if (m.find()) {
return_str = m.group(2);
}
}
return return_str;
}
10、HTML字符串转换
public static String encodeHTML(String str) {
if (isEmpty(str)) {
return "";
}
str = str.replaceAll("&", "&");
str = str.replaceAll("<", "<");
str = str.replaceAll(">", ">");
str = str.replaceAll("\"", """);
return str;
}
11、还原HTML字符串数据
public static String decodeHTML(String str) {
if (isEmpty(str)) {
return "";
}
str = str.replaceAll("&", "&");
str = str.replaceAll("<", "<");
str = str.replaceAll(">", ">");
str = str.replaceAll(""", "\"");
return str;
}
12、Html转换为TextArea文本:编辑时拿来做转换
public static String Html2Text(String str) {
if (str == null) {
return "";
}else if (str.length() == 0) {
return "";
}
str = str.replaceAll("<br />", "\n");
str = str.replaceAll("<br />", "\r");
return str;
}
13、TextArea文本转换为Html:写入数据库时使用
public static String Text2Html(String str) {
if (str == null) {
return "";
}else if (str.length() == 0) {
return "";
}
str = str.replaceAll("\n", "<br />");
str = str.replaceAll("\r", "<br />");
return str;
}
14、字符串非法字符检测
public static boolean checkStringRule(String str) {
if (isEmpty(str)) {
return true;
}
boolean b = true;
if ((str.indexOf("`") > -1) || (str.indexOf("~") > -1)
|| (str.indexOf("!") > -1) || (str.indexOf("#") > -1)
|| (str.indexOf("$") > -1) || (str.indexOf("%") > -1)
|| (str.indexOf("^") > -1) || (str.indexOf("&") > -1)
|| (str.indexOf("*") > -1) || (str.indexOf("(") > -1)
|| (str.indexOf(")") > -1) || (str.indexOf("=") > -1)
|| (str.indexOf("+") > -1) || (str.indexOf("|") > -1)
|| (str.indexOf("\\") > -1) || (str.indexOf(";") > -1)
|| (str.indexOf(":") > -1) || (str.indexOf("'") > -1)
|| (str.indexOf("\"") > -1) || (str.indexOf("<") > -1)
|| (str.indexOf(",") > -1) || (str.indexOf(">") > -1)
|| (str.indexOf("?") > -1) || (str.indexOf(" ") > -1)) {
b = false;
}
return b;
}
15、去除字符串前后的逗号
public static String deleteComma(String str) {
str = str.replaceAll("^,*|,*$", "");
return str;
}
16、获取页面参数转为Map
public static HashMap<String, String> getMapParameterByRequest(HttpServletRequest request) {
HashMap<String, String> hm = new HashMap<String, String>();
@SuppressWarnings("unchecked")
Enumeration<String> em = request.getParameterNames();
while (em.hasMoreElements()) {
String name = em.nextElement();
if (!name.equals("method")) {
String value = getNotNullStringValue(request.getParameter(name), "");
hm.put(name, value);
}
}
return hm;
}
17、获得用户远程地址
public static String getRemoteAddr(HttpServletRequest request){
String remoteAddr = request.getHeader("X-Real-IP");
if (StringUtils.isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("X-Forwarded-For");
}else if (StringUtils.isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("Proxy-Client-IP");
}else if (StringUtils.isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("WL-Proxy-Client-IP");
}
return remoteAddr != null ? remoteAddr : request.getRemoteAddr();
}
18、截取关键字前后多少字
public static String subKeyword(String str, String keyword){
String newStr = null;
String frontStr = null;
String afterStr = null;
int keywordLength = keyword.length();
int index = str.indexOf(keyword);
int le = 35;
if(index != -1){
if(index>le){
frontStr = str.substring(index-le,index);
}else{
frontStr = str.substring(0,index);
}
if(str.length()-index-keywordLength>le){
afterStr = str.substring(index+keywordLength,index+keywordLength+le);
}else{
afterStr = str.substring(index+keywordLength,str.length());
}
newStr = frontStr + keyword + afterStr;
}else{
if(str.length()>70){
newStr = str.substring(0,70);
}else{
newStr = str.substring(0,str.length());
}
}
newStr = newStr.replace(keyword,"<font color='#FF1919'>"+keyword+"</font>");
//System.out.println(newStr);
return newStr;
}
19、拼接IN条件值
public static String getInCond(String str) {
String[] strArr = str.split(",");
StringBuffer sb = new StringBuffer();
for(int i = 0;i < strArr.length; i++){
if(i == strArr.length-1){
sb.append("'"+strArr[i]+"'");
}else{
sb.append("'"+strArr[i]+"'"+",");
}
}
return sb.toString();
}
20、拼接IN条件值 – int数组
public static String getInCondIntArry(int[] intArry) {
String[] strArr = new String[intArry.length];
for (int i = 0; i < strArr.length; i++) {
strArr[i] = ""+intArry[i];
}
StringBuffer sb = new StringBuffer();
for(int i = 0;i < strArr.length; i++){
if(i == strArr.length-1){
sb.append("'"+strArr[i]+"'");
}else{
sb.append("'"+strArr[i]+"'"+",");
}
}
return sb.toString();
}