|
@ -0,0 +1,1440 @@
|
|
|
|
package com.yihu.jw.utils;
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.StringWriter;
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
import java.io.Writer;
|
|
|
|
import java.sql.Clob;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.regex.Matcher;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
public class StringUtil {
|
|
|
|
|
|
|
|
public static String substring(String str, int start) {
|
|
|
|
return StringUtils.substring(str, start);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String substring(String str, int start, int end) {
|
|
|
|
return StringUtils.substring(str, start, end);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean isBlank(String str) {
|
|
|
|
return StringUtils.isBlank(str);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String toString(Object obj) {
|
|
|
|
|
|
|
|
if (obj == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return obj.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String trimLeft(String value) {
|
|
|
|
if (value == null)
|
|
|
|
return "";
|
|
|
|
String result = value;
|
|
|
|
char ch[] = result.toCharArray();
|
|
|
|
int index = -1;
|
|
|
|
for (int i = 0; i < ch.length; i++) {
|
|
|
|
if (Character.isWhitespace(ch[i])) {
|
|
|
|
index = i;
|
|
|
|
} else {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (index != -1) {
|
|
|
|
result = result.substring(index + 1);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ?��??????????????????
|
|
|
|
*
|
|
|
|
* @param value ?????
|
|
|
|
* @return String src????????
|
|
|
|
*/
|
|
|
|
public static String trimRight(String value) {
|
|
|
|
if (value == null)
|
|
|
|
return "";
|
|
|
|
String result = value;
|
|
|
|
char ch[] = result.toCharArray();
|
|
|
|
int endIndex = -1;
|
|
|
|
for (int i = ch.length - 1; i > -1; i--) {
|
|
|
|
if (Character.isWhitespace(ch[i])) {
|
|
|
|
endIndex = i;
|
|
|
|
} else {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (endIndex != -1) {
|
|
|
|
result = result.substring(0, endIndex);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ??????????????????"0",?????????? ????????param str:???????????? param len???????????? ?? ???Stirng
|
|
|
|
* <p/> ??��????? ??????? ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillHeadCharsLen(String strOri, int len) {
|
|
|
|
return fillHeadCharsLen(strOri, "0", len);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ???????????????????"0",?????????? ????????param str:???????????? param len???????????? ?? ???Stirng
|
|
|
|
* <p/> ??��????? ??????? ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillBackCharsLen(String strOri, int len) {
|
|
|
|
return fillBackCharsLen(strOri, "0", len);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ??????????????????????????,?????????? ????????param str:???????????? param subStr:????????????
|
|
|
|
* param len???????????? ?? ???Stirng <p/> ??��????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillHeadCharsLen(String strOri, String subStr, int len) {
|
|
|
|
if (strOri == null || strOri.trim().length() == 0) {
|
|
|
|
strOri = "";
|
|
|
|
}
|
|
|
|
if (subStr == null) {
|
|
|
|
subStr = " ";
|
|
|
|
}
|
|
|
|
String fillStr = "";
|
|
|
|
for (int i = 0; i < len; i++) {
|
|
|
|
fillStr = fillStr + subStr;
|
|
|
|
}
|
|
|
|
subStr = fillStr + strOri;
|
|
|
|
|
|
|
|
return (subStr.substring(subStr.length() - len, subStr.length()));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ???????????????????????????,?????????? ????????param str:???????????? param subStr:????????????
|
|
|
|
* param len???????????? ?? ???Stirng <p/> ??��????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillBackCharsLen(String strOri, String subStr, int len) {
|
|
|
|
if (strOri == null || strOri.trim().length() == 0) {
|
|
|
|
strOri = "";
|
|
|
|
}
|
|
|
|
if (subStr == null) {
|
|
|
|
subStr = " ";
|
|
|
|
}
|
|
|
|
String fillStr = "";
|
|
|
|
for (int i = 0; i < len; i++) {
|
|
|
|
fillStr = fillStr + subStr;
|
|
|
|
}
|
|
|
|
subStr = strOri + fillStr;
|
|
|
|
|
|
|
|
return (subStr.substring(0, len));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ??????????????????"0"
|
|
|
|
* ????????param str:???????????? param counter??????????? ?? ???Stirng <p/> ??��????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillHeadChars(String strOri, int counter) {
|
|
|
|
return fillHeadChars(strOri, "0", counter);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ???????????????????"0"
|
|
|
|
* ????????param str:???????????? param counter??????????? ?? ???Stirng <p/> ??��????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillBackChars(String strOri, int counter) {
|
|
|
|
return fillBackChars(strOri, "0", counter);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ??????????????????????????
|
|
|
|
* ????????param str:???????????? param subStr:???????????? param counter??????????? ??
|
|
|
|
* ???Stirng <p/> ??��????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillHeadChars(String strOri, String subStr, int counter) {
|
|
|
|
if (strOri == null || strOri.trim().length() == 0) {
|
|
|
|
strOri = "";
|
|
|
|
}
|
|
|
|
if (counter <= 0 || subStr == null) {
|
|
|
|
return strOri;
|
|
|
|
}
|
|
|
|
String fillStr = "";
|
|
|
|
for (int i = 0; i < counter; i++) {
|
|
|
|
fillStr = fillStr + subStr;
|
|
|
|
}
|
|
|
|
return (fillStr + strOri);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ???????????????????????????
|
|
|
|
* ????????param str:???????????? param subStr:???????????? param counter??????????? ??
|
|
|
|
* ???Stirng <p/> ??��????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String fillBackChars(String strOri, String subStr, int counter) {
|
|
|
|
if (strOri == null || strOri.trim().length() == 0) {
|
|
|
|
strOri = "";
|
|
|
|
}
|
|
|
|
if (counter <= 0 || subStr == null) {
|
|
|
|
return strOri;
|
|
|
|
}
|
|
|
|
String fillStr = "";
|
|
|
|
for (int i = 0; i < counter; i++) {
|
|
|
|
fillStr = fillStr + subStr;
|
|
|
|
}
|
|
|
|
return (strOri + fillStr);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��???????????????null(???????) ????????param str:???????????? ????????? ?? ??????null??true;
|
|
|
|
* ?????false <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isEmpty(Object strObj) {
|
|
|
|
if (strObj == null || strObj.toString().trim().length() < 1) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��??????????????????null????(???????)?? ????????param str:???��??????? ????????? ??
|
|
|
|
* ???true?????false????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isStrEmpty(String str) {
|
|
|
|
if ((str == null) || (str.trim().length() < 1) || "null".endsWith(str.toLowerCase())) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????????????????????????????????null????? ????????param str:???????????? ????????? ??
|
|
|
|
* ???????????????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String getValue(String str) {
|
|
|
|
if (str == null) {
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
if (str.trim().length() <= 0)
|
|
|
|
return "";
|
|
|
|
str = "H" + str;
|
|
|
|
str = str.trim();
|
|
|
|
str = str.substring(1);
|
|
|
|
return str;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ????��?????????????????????
|
|
|
|
* ????????param text:???��?????????param len:????????? ????????? ?? ???return
|
|
|
|
* true??��??????false??????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean chkTextLen(String text, int len) {
|
|
|
|
if (text == null || text.length() > len) {
|
|
|
|
return false;
|
|
|
|
} else {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��??????????????????????????? ????????param text:???��?????????param len:????????? ????????? ??
|
|
|
|
* ???return true??��??????false??????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean chkTextTrimLen(String text, int len) {
|
|
|
|
if (text == null || text.trim().length() > len) {
|
|
|
|
return false;
|
|
|
|
} else {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��???????????????english ????????param text:???��????????? ????????? ?? ???return
|
|
|
|
* true???????false:????????????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isStrEn(String text) {
|
|
|
|
for (int i = 0; i < text.length(); i++) {
|
|
|
|
if (text.charAt(i) > 127) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ????��????????????????
|
|
|
|
* ????????param ch:???��????? ????????? ?? ???return true???????false:?????? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isCharNum(char ch) {
|
|
|
|
if (ch > 47 && ch < 58) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��?????????????��????????? ????????param str:???��??????? ????????? ?? ???return
|
|
|
|
* true??Null?????????????false:??????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isStrNum(String str) {
|
|
|
|
if (isStrEmpty(str)) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
boolean notNum = false;
|
|
|
|
for (int i = 0; i < str.length(); i++) {
|
|
|
|
if (!isCharNum(str.charAt(i))) {
|
|
|
|
notNum = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return !notNum;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��?????????????��????????? ????????param strSrc:???��??????? ????????? ?? ???return
|
|
|
|
* true??????????false:????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isNum(String strSrc) throws Exception {
|
|
|
|
for (int i = 0; i < strSrc.length(); i++) {
|
|
|
|
if (!isCharNum(strSrc.charAt(i)))
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ????��??????????????????
|
|
|
|
* ????????param ch:???��????? ????????? ?? ???return true????????????false:?????????? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isCharLetter(char ch) {
|
|
|
|
if ((ch >= 65 && ch <= 90) && (ch >= 97 && ch <= 122)) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ????��?????????????????????
|
|
|
|
* ????????param str:???��??????? ????????? ?? ???return true??NULL???��?????????false:?????????
|
|
|
|
* <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean isStrLetter(String str) {
|
|
|
|
if (isStrEmpty(str))
|
|
|
|
return true;
|
|
|
|
boolean notLetter = false;
|
|
|
|
for (int i = 0; i < str.length(); i++) {
|
|
|
|
if (!isCharLetter(str.charAt(i))) {
|
|
|
|
notLetter = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return !notLetter;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????????????????????????????? ????????param src:?????????? ????????? ?? ???return
|
|
|
|
* ??????????????????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static char strToChar(String src) {
|
|
|
|
src = src.trim();
|
|
|
|
char result = src.charAt(0);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ??????????????????????ASCII?? ????????param sql:???????sql?????? ????????? ?? ?????????????? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String encodeSQL(String sql) {
|
|
|
|
StringBuffer tempBuff = new StringBuffer();
|
|
|
|
for (int i = 0; i < sql.length(); i++) {
|
|
|
|
tempBuff.append(Integer.toHexString(sql.charAt(i)));
|
|
|
|
}
|
|
|
|
return tempBuff.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ??????????ASCII????????????????? ????????param encoded:???????????? ????????? ?? ?????????????? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String decodeSQL(String encoded) {
|
|
|
|
StringBuffer tempBuff = new StringBuffer();
|
|
|
|
for (int i = 0; i < encoded.length(); i += 2) {
|
|
|
|
tempBuff.append((char) Integer.parseInt(
|
|
|
|
encoded.substring(i, i + 2), 16));
|
|
|
|
}
|
|
|
|
return tempBuff.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ?????????��??
|
|
|
|
* ????????param path1:????��????param context1:?????? ????????? ?? ???return ???��?? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String getAbsolutePath(String path1, String context1) {
|
|
|
|
int i1 = path1.indexOf(context1);
|
|
|
|
if (i1 < 0) {
|
|
|
|
return path1;
|
|
|
|
} else {
|
|
|
|
return path1.substring(path1.indexOf(context1) + context1.length());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ????????? ????????param
|
|
|
|
* str1:???????????????param sindex:???��???param eindex:????��?? ????????? ??
|
|
|
|
* ???????????��????????��???????????????????��??��??0?????????��????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String getSubString(String str1, int sindex, int eindex) {
|
|
|
|
if (str1 == null) {
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
if (str1.trim().length() <= 0)
|
|
|
|
return "";
|
|
|
|
if (str1.length() > sindex) {
|
|
|
|
if (eindex >= 0)
|
|
|
|
return str1.substring(sindex, eindex);
|
|
|
|
else if (eindex < 0)
|
|
|
|
return str1.substring(sindex);
|
|
|
|
}
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????????????????????????��??????????????? ????????param strs:???????????????�param size1:?????????�A??
|
|
|
|
* ????????? ?? ???return ??????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String[] getValues(String[] strs, int size1) {
|
|
|
|
String[] strs1 = new String[size1];
|
|
|
|
for (int i = 0; i < size1; i++) {
|
|
|
|
strs1[i] = "";
|
|
|
|
}
|
|
|
|
if (strs == null) {
|
|
|
|
return strs1;
|
|
|
|
} else {
|
|
|
|
if (strs.length < size1) {
|
|
|
|
for (int i = 0; i < strs.length; i++) {
|
|
|
|
strs1[i] = strs[i];
|
|
|
|
}
|
|
|
|
return strs1;
|
|
|
|
} else {
|
|
|
|
return strs;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ????????????�I????
|
|
|
|
* ????????param strSource ???�I?????????param strFrom ????????param strTo ???????? ????????? ??
|
|
|
|
* ????�I???????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String replaceStrAll(String strSource, String strFrom,
|
|
|
|
String strTo) {
|
|
|
|
String strDest = "";
|
|
|
|
int intFromLen = strFrom.length();
|
|
|
|
int intPos;
|
|
|
|
while ((intPos = strSource.indexOf(strFrom)) != -1) {
|
|
|
|
strDest = strDest + strSource.substring(0, intPos);
|
|
|
|
strDest = strDest + strTo;
|
|
|
|
strSource = strSource.substring(intPos + intFromLen);
|
|
|
|
}
|
|
|
|
strDest = strDest + strSource;
|
|
|
|
return strDest;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String replaceStr(String strTarget, String strNew) {
|
|
|
|
|
|
|
|
int iIndex = -1;
|
|
|
|
while (true) {
|
|
|
|
|
|
|
|
iIndex = strTarget.indexOf('\n');
|
|
|
|
|
|
|
|
if (iIndex < 0) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
String strTemp = null;
|
|
|
|
strTemp = strTarget.substring(0, iIndex);
|
|
|
|
|
|
|
|
strTarget = strTemp + strNew + strTarget.substring(iIndex + 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return strTarget;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��????????????????��?????? ????????param str1 ?????????????param strarray ??????????????�
|
|
|
|
* ????????? ?? ???return true??????;false??��???? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean includestr(String str1, String[] strarray) {
|
|
|
|
if (strarray == null || strarray.length <= 0)
|
|
|
|
return false;
|
|
|
|
for (int i = 0; i < strarray.length; i++) {
|
|
|
|
if (strarray[i] == null) {
|
|
|
|
if (str1 == null)
|
|
|
|
return true;
|
|
|
|
else
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if (strarray[i].trim().equals(str1)) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????\n?????????????????????????�?????\r ????????param fvalue ???????????? ????????? ?? ???return
|
|
|
|
* ?????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String[] getAreaValues(String fvalue) {
|
|
|
|
String tmpstr = fvalue;
|
|
|
|
int i = 0;
|
|
|
|
if (tmpstr == null)
|
|
|
|
return null;
|
|
|
|
if (tmpstr.trim().equals(""))
|
|
|
|
return null;
|
|
|
|
while (tmpstr.indexOf("\n") >= 0) {
|
|
|
|
i++;
|
|
|
|
tmpstr = tmpstr.substring(tmpstr.indexOf("\n") + 1);
|
|
|
|
}
|
|
|
|
if (tmpstr.trim().equals("")) {
|
|
|
|
i--;
|
|
|
|
}
|
|
|
|
String[] fvalues = new String[i + 1];
|
|
|
|
tmpstr = fvalue;
|
|
|
|
i = 0;
|
|
|
|
while (tmpstr.indexOf("\n") >= 0) {
|
|
|
|
fvalues[i] = tmpstr.substring(0, tmpstr.indexOf("\n"));
|
|
|
|
if (fvalues[i].indexOf("\r") >= 0)
|
|
|
|
fvalues[i] = fvalues[i].substring(0, fvalues[i].indexOf("\r"));
|
|
|
|
i++;
|
|
|
|
tmpstr = tmpstr.substring(tmpstr.indexOf("\n") + 1);
|
|
|
|
}
|
|
|
|
if (!tmpstr.trim().equals(""))
|
|
|
|
fvalues[i] = tmpstr;
|
|
|
|
return fvalues;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ???????????��?|????\n
|
|
|
|
* ????????param fvalue ???????????? ????????? ?? ?????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String getrealAreaValues(String fvalue) {
|
|
|
|
String tmpstr = fvalue;
|
|
|
|
String returnstr = "";
|
|
|
|
if (tmpstr == null)
|
|
|
|
return null;
|
|
|
|
if (tmpstr.trim().equals(""))
|
|
|
|
return "";
|
|
|
|
while (tmpstr.indexOf("|") > 0) {
|
|
|
|
returnstr += tmpstr.substring(0, tmpstr.indexOf("|")) + "\n";
|
|
|
|
tmpstr = tmpstr.substring(tmpstr.indexOf("|") + 1);
|
|
|
|
}
|
|
|
|
return returnstr;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????????????��??��???????????? ????????param strInput ??????????????param chr ????????? ????????? ??
|
|
|
|
* ???return ???????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static int countChar(String strInput, char chr) {
|
|
|
|
int iCount = 0;
|
|
|
|
char chrTmp = ' ';
|
|
|
|
|
|
|
|
if (strInput.trim().length() == 0)
|
|
|
|
return 0;
|
|
|
|
// ?????????????????
|
|
|
|
for (int i = 0; i < strInput.length(); i++) {
|
|
|
|
chrTmp = strInput.charAt(i);
|
|
|
|
if (chrTmp == chr) {
|
|
|
|
iCount++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return iCount;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ??????????????????????????
|
|
|
|
* ????????param strs ???????????????? ????????? ?? ????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String strArrayToStr(String[] strs) {
|
|
|
|
return strArrayToStr(strs, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ??????��???????????????????
|
|
|
|
* ????????param strs ???????????????? ????????? ?? ????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static void printStrs(String[] strs) {
|
|
|
|
for (int i = 0; i < strs.length; i++) {
|
|
|
|
System.out.println(strs[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ???????????��??????��??????????????????? ????????param strs ?????????????????? ????????? ?? ????? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static void printDualStr(String[][] dualStr) {
|
|
|
|
for (int i = 0; i < dualStr.length; i++) {
|
|
|
|
for (int j = 0; j < dualStr[i].length; j++) {
|
|
|
|
System.out.print(dualStr[i][j] + " ");
|
|
|
|
}
|
|
|
|
System.out.println();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ???????????????????????��???��????��???? ????????param dualStr ??????????? ????????? ?? ???return
|
|
|
|
* ???????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String[][] rowToColumn(String[][] dualStr) {
|
|
|
|
String[][] returnDualStr = null;
|
|
|
|
if (dualStr != null) {
|
|
|
|
returnDualStr = new String[dualStr[0].length][dualStr.length];
|
|
|
|
for (int i = 0; i < dualStr.length; i++)
|
|
|
|
for (int j = 0; j < dualStr[0].length; j++)
|
|
|
|
returnDualStr[j][i] = dualStr[i][j];
|
|
|
|
}
|
|
|
|
return returnDualStr;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????????????????????String?????��???????????????? ????????param inStr ?????????? ????????? ?? ???return
|
|
|
|
* ??????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String latinString(String inStr) {
|
|
|
|
String res = inStr;
|
|
|
|
if (null == res)
|
|
|
|
return null;
|
|
|
|
res = replaceStrAll(res, "\"", "\\\"");
|
|
|
|
res = replaceStrAll(res, "'", "\\'");
|
|
|
|
return res;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ?? ?????????????��???�I???????
|
|
|
|
* ????????param String strTarget, String strNew ????????? ?? ???return String
|
|
|
|
* ????????�I????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String replaceWhiteSpace(String strTarget, String strNew) {
|
|
|
|
|
|
|
|
int iIndex = -1;
|
|
|
|
while (true) {
|
|
|
|
char cRep = 32;
|
|
|
|
iIndex = strTarget.indexOf(cRep);
|
|
|
|
|
|
|
|
if (iIndex < 0) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
String strTemp = null;
|
|
|
|
strTemp = strTarget.substring(0, iIndex);
|
|
|
|
|
|
|
|
strTarget = strTemp + strNew + strTarget.substring(iIndex + 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return strTarget;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????????��?????????��????��?????????????��????��?????????��???? ????????param amount ???????, param
|
|
|
|
* length ?????��??��???? ????????? ?? ???return ??????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String double2str(double amount, int length) {
|
|
|
|
String strAmt = Double.toString(amount);
|
|
|
|
|
|
|
|
int pos = strAmt.indexOf('.');
|
|
|
|
|
|
|
|
if (pos != -1 && strAmt.length() > length + pos + 1)
|
|
|
|
strAmt = strAmt.substring(0, pos + length + 1);
|
|
|
|
|
|
|
|
return strAmt;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ???????chr?????????????String???????split???????"|"??????? ????????param str ??????????,param
|
|
|
|
* chr ?????? ????????? ?? ???return String[] ??????????????,????????????|?????????? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String[] doSplit(String str, char chr) {
|
|
|
|
int iCount = 0;
|
|
|
|
char chrTmp = ' ';
|
|
|
|
// ?????????????????
|
|
|
|
for (int i = 0; i < str.length(); i++) {
|
|
|
|
chrTmp = str.charAt(i);
|
|
|
|
if (chrTmp == chr) {
|
|
|
|
iCount++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String[] strArray = new String[iCount];
|
|
|
|
for (int i = 0; i < iCount; i++) {
|
|
|
|
int iPos = str.indexOf(chr);
|
|
|
|
if (iPos == 0) {
|
|
|
|
strArray[i] = "";
|
|
|
|
} else {
|
|
|
|
strArray[i] = str.substring(0, iPos);
|
|
|
|
}
|
|
|
|
str = str.substring(iPos + 1); // ??iPos+1??????,str????????��
|
|
|
|
}
|
|
|
|
return strArray;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ???????s?????????????String???????split???????"|"??????? ????????param str ??????????,param s
|
|
|
|
* ???????? ????????? ?? ???return String[] ??????????????,??????????|?????????? <p/>
|
|
|
|
* ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String[] strSplit(String src, String splitchar) {
|
|
|
|
int resultSize = 0;
|
|
|
|
int len = src.length();
|
|
|
|
int idx = 0;
|
|
|
|
String strTemp = "";
|
|
|
|
for (int i = 0; i < len; i++) {
|
|
|
|
if (src.substring(i, i + 1).equals(splitchar)) {
|
|
|
|
resultSize++;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((len > 1) & (!src.substring(len - 1, len).equals(splitchar))) {
|
|
|
|
resultSize++;
|
|
|
|
}
|
|
|
|
String result[] = new String[resultSize];
|
|
|
|
for (int i = 0; i < len; i++) {
|
|
|
|
if (src.substring(i, i + 1).equals(splitchar)) {
|
|
|
|
result[idx] = strTemp;
|
|
|
|
idx++;
|
|
|
|
strTemp = "";
|
|
|
|
} else {
|
|
|
|
strTemp = String.valueOf(strTemp)
|
|
|
|
+ String.valueOf(src.charAt(i));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!strTemp.equals("")) {
|
|
|
|
result[idx] = strTemp;
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ???????strSeparator?????????????????????��??????? ????????param strToSplit ??????????,param
|
|
|
|
* strSeparator ????????,param iLimit ?????�� ????????? ?? ???return String[] ??????????????
|
|
|
|
* <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String[] split(String strToSplit, String strSeparator,
|
|
|
|
int iLimit) {
|
|
|
|
ArrayList tmpList = new ArrayList();
|
|
|
|
int iFromIndex = 0;
|
|
|
|
int iCurIndex = strToSplit.length();
|
|
|
|
String strUnitInfo = "";
|
|
|
|
int iCurCounts = 0;
|
|
|
|
while ((iCurIndex != -1) && (iFromIndex < strToSplit.length())
|
|
|
|
&& (iCurCounts < iLimit)) {
|
|
|
|
iCurIndex = strToSplit.indexOf(strSeparator, iFromIndex);
|
|
|
|
if (iCurIndex == -1) {
|
|
|
|
strUnitInfo = strToSplit.substring(iFromIndex, strToSplit
|
|
|
|
.length());
|
|
|
|
} else {
|
|
|
|
strUnitInfo = strToSplit.substring(iFromIndex, iCurIndex);
|
|
|
|
iFromIndex = iCurIndex + 1;
|
|
|
|
}
|
|
|
|
tmpList.add(strUnitInfo);
|
|
|
|
iCurCounts++;
|
|
|
|
}
|
|
|
|
int iCounts = tmpList.size();
|
|
|
|
String tmpArray[] = new String[iCounts];
|
|
|
|
for (int i = 0; i < iCounts; i++) {
|
|
|
|
tmpArray[i] = (String) tmpList.get(i);
|
|
|
|
}
|
|
|
|
return tmpArray;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????????????��????????????????????...???? ????????param src ???????????,param len ?????�� ????????? ??
|
|
|
|
* ???return String ??��????????????????????...??????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String strIntercept(String src, int len) {
|
|
|
|
if (src == null) {
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
if (src.length() > len) {
|
|
|
|
src = String.valueOf(String.valueOf(src.substring(0, len))).concat(
|
|
|
|
"...");
|
|
|
|
}
|
|
|
|
return src;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????????????ISO8859_1???? ????????param str_in ??????????????? ????????? ?? ???return String
|
|
|
|
* ????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String strtochn(String str_in) {
|
|
|
|
try {
|
|
|
|
String temp_p = str_in;
|
|
|
|
if (temp_p == null) {
|
|
|
|
temp_p = "";
|
|
|
|
}
|
|
|
|
String temp = "";
|
|
|
|
if (!temp_p.equals("")) {
|
|
|
|
byte[] byte1 = temp_p.getBytes("ISO8859_1");
|
|
|
|
temp = new String(byte1);
|
|
|
|
}
|
|
|
|
return temp;
|
|
|
|
} catch (Exception e) {
|
|
|
|
}
|
|
|
|
return "null";
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????ISO8859_1????????GBK???? ????????param strvalue ??????????????? ????????? ?? ???return
|
|
|
|
* String ????????????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static String ISO2GBK(String strvalue) {
|
|
|
|
try {
|
|
|
|
if (strvalue == null)
|
|
|
|
return null;
|
|
|
|
else {
|
|
|
|
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
|
|
|
|
return strvalue;
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????????????????????��?????? ????????param str ??????????????? ????????? ?? ???return String
|
|
|
|
* ????????????? ??????? ******************************************************
|
|
|
|
*/
|
|
|
|
public static String cnCodeTrans(String str) {
|
|
|
|
String s = "";
|
|
|
|
try {
|
|
|
|
s = new String(str.getBytes("GB2312"), "8859_1");
|
|
|
|
} catch (UnsupportedEncodingException a) {
|
|
|
|
System.out.print("chinese thansform exception");
|
|
|
|
}
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ????��?????????????????STaaaa????ST****** ????????param strSource???????????????param
|
|
|
|
* strRule???? ????????? ?? ???return false:???????????true:????????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public static boolean judgeMatch(String strSource, String strRule) {
|
|
|
|
int i = 0;
|
|
|
|
// ????????��?
|
|
|
|
if ((null == strSource) || (strSource.length() == 0))
|
|
|
|
return false;
|
|
|
|
// ????????��?
|
|
|
|
if ((null == strRule) || (strRule.length() == 0))
|
|
|
|
return false;
|
|
|
|
// ??????????
|
|
|
|
if (strSource.length() > strRule.length())
|
|
|
|
return false;
|
|
|
|
// ??��???��?
|
|
|
|
for (i = 0; i < strRule.length(); i++) {
|
|
|
|
// ?????????
|
|
|
|
if (strSource.length() < i + 1) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if ((strRule.charAt(i) != '*')
|
|
|
|
&& (strSource.charAt(i) != strRule.charAt(i))) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// ??????????????????????????????'*'?????????
|
|
|
|
for (; i < strRule.length(); i++) {
|
|
|
|
if (strRule.charAt(i) != '*')
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String column2Property(String column) {
|
|
|
|
column = column.toLowerCase();
|
|
|
|
int i = column.indexOf("_");
|
|
|
|
while (i != -1) {
|
|
|
|
if (i != column.length() - 1) {
|
|
|
|
char temp = column.charAt(i + 1);
|
|
|
|
String strTemp = String.valueOf(temp);
|
|
|
|
column = column.replaceFirst("_" + strTemp, strTemp
|
|
|
|
.toUpperCase());
|
|
|
|
i = column.indexOf("_");
|
|
|
|
} else {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return column;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String strArrayToStr(String[] strs, String separator) {
|
|
|
|
StringBuffer returnstr = new StringBuffer("");
|
|
|
|
|
|
|
|
if (strs == null)
|
|
|
|
return "";
|
|
|
|
if (separator == null)
|
|
|
|
separator = "";
|
|
|
|
|
|
|
|
for (int i = 0; i < strs.length; i++) {
|
|
|
|
returnstr.append(strs[i]);
|
|
|
|
if (i < strs.length - 1)
|
|
|
|
returnstr.append(separator);
|
|
|
|
}
|
|
|
|
return returnstr.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String objectArrayToStr(Object[] objects, String separator) {
|
|
|
|
StringBuffer returnstr = new StringBuffer("");
|
|
|
|
|
|
|
|
if (objects == null)
|
|
|
|
return "";
|
|
|
|
if (separator == null)
|
|
|
|
separator = "";
|
|
|
|
|
|
|
|
for (int i = 0; i < objects.length; i++) {
|
|
|
|
returnstr.append(String.valueOf(objects[i]));
|
|
|
|
if (i < objects.length - 1)
|
|
|
|
returnstr.append(separator);
|
|
|
|
}
|
|
|
|
return returnstr.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String listToStr(List element, String separator) {
|
|
|
|
|
|
|
|
StringBuffer returnstr = new StringBuffer("");
|
|
|
|
|
|
|
|
if (element == null)
|
|
|
|
return "";
|
|
|
|
if (separator == null)
|
|
|
|
separator = "";
|
|
|
|
|
|
|
|
Iterator it = element.iterator();
|
|
|
|
|
|
|
|
while (it.hasNext()) {
|
|
|
|
returnstr.append(String.valueOf(it.next()));
|
|
|
|
if (it.hasNext())
|
|
|
|
returnstr.append(separator);
|
|
|
|
}
|
|
|
|
|
|
|
|
return returnstr.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String[] listToStrArray(List element) {
|
|
|
|
|
|
|
|
if (element == null || element.size() == 0)
|
|
|
|
return null;
|
|
|
|
|
|
|
|
Iterator it = element.iterator();
|
|
|
|
String[] strArray = new String[element.size()];
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
while (it.hasNext()) {
|
|
|
|
strArray[i] = String.valueOf(it.next());
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
return strArray;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static List strToList(String str, String separator) {
|
|
|
|
|
|
|
|
if (str == null || str.equals(""))
|
|
|
|
return null;
|
|
|
|
if (separator == null)
|
|
|
|
separator = "";
|
|
|
|
|
|
|
|
String[] strArr = str.split(separator);
|
|
|
|
int size = strArr.length;
|
|
|
|
List list = new ArrayList();
|
|
|
|
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
|
list.add(strArr[i]);
|
|
|
|
}
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static StringBuffer populate(StringBuffer bf, String value,
|
|
|
|
boolean isNotLast) {
|
|
|
|
if (value == null) {
|
|
|
|
return bf;
|
|
|
|
}
|
|
|
|
// ???????????????????�I??????????????????????????????SQL???????????
|
|
|
|
System.out.println(value.replaceAll("'", "''"));
|
|
|
|
bf.append("'").append(value.replaceAll("'", "''")).append("'");
|
|
|
|
if (isNotLast)
|
|
|
|
bf.append(",");
|
|
|
|
return bf;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean isExist(String str, String substr, String sepatator) {
|
|
|
|
if (str == null || str.trim().equals(""))
|
|
|
|
return false;
|
|
|
|
if (substr == null || substr.trim().equals(""))
|
|
|
|
return false;
|
|
|
|
String[] strArr = str.split(sepatator);
|
|
|
|
int size = strArr.length;
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
|
if (strArr[i].equals(substr))
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean isExist(String str, String substr) {
|
|
|
|
return isExist(str, substr, ",");
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String leftInclude(String str) {
|
|
|
|
if (str == null || str.equals(""))
|
|
|
|
return str;
|
|
|
|
return str + "%";
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String rightInclude(String str) {
|
|
|
|
if (str == null || str.equals(""))
|
|
|
|
return str;
|
|
|
|
return "%" + str;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String include(String str) {
|
|
|
|
if (str == null || str.equals(""))
|
|
|
|
return str;
|
|
|
|
return "%" + str + "%";
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ???????????????????????????????
|
|
|
|
*
|
|
|
|
* @param source String ?????
|
|
|
|
* @param target String ????????
|
|
|
|
* @return String ???
|
|
|
|
*/
|
|
|
|
public static String nvl(Object source, Object target) {
|
|
|
|
return source != null ? String.valueOf(source)
|
|
|
|
: (target != null ? String.valueOf(target) : null);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ??clob??????????????
|
|
|
|
*
|
|
|
|
* @param clobValue
|
|
|
|
* @return
|
|
|
|
* @throws SQLException
|
|
|
|
*/
|
|
|
|
public static String clob2Str(Object clobValue) throws SQLException {
|
|
|
|
return ((Clob) clobValue).getSubString(1, (int) ((Clob) clobValue)
|
|
|
|
.length());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ???web????????Ip
|
|
|
|
*
|
|
|
|
* @param request
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public static String getRemoteAddr(HttpServletRequest request) {
|
|
|
|
String ip = request.getHeader("x-forwarded-for");
|
|
|
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
|
ip = request.getHeader("Proxy-Client-IP");
|
|
|
|
}
|
|
|
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
|
ip = request.getHeader("WL-Proxy-Client-IP");
|
|
|
|
}
|
|
|
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
|
ip = request.getRemoteAddr();
|
|
|
|
}
|
|
|
|
return ip;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String hideFlowStr(String str, int maxLen) {
|
|
|
|
|
|
|
|
if (str == null || maxLen == 0) {
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (str.length() > maxLen) {
|
|
|
|
str = str.substring(0, maxLen) + "...";
|
|
|
|
}
|
|
|
|
|
|
|
|
return str;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ???????????????
|
|
|
|
*
|
|
|
|
* @param str
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public static String escapeLuceneSpecialCharacters(String str) {
|
|
|
|
if (str == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
StringWriter writer = new StringWriter(str.length() * 2);
|
|
|
|
escapeLuceneSpecialCharacterString(writer, str);
|
|
|
|
|
|
|
|
return writer.toString();
|
|
|
|
} catch (IOException ex) {
|
|
|
|
//LogService.getLogger(StringUtil.class).error(ex.getMessage());
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void escapeLuceneSpecialCharacterString(Writer out,
|
|
|
|
String str) throws IOException {
|
|
|
|
if (str == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
int sz = str.length();
|
|
|
|
for (int i = 0; i < sz; i++) {
|
|
|
|
char ch = str.charAt(i);
|
|
|
|
/*
|
|
|
|
* Reference link:
|
|
|
|
* http://lucene.apache.org/java/docs/queryparsersyntax.html Lucene
|
|
|
|
* supports escaping special characters that are part of the query
|
|
|
|
* syntax. The current list special characters are: + - && || ! ( ) { } [ ] ^ " ~ * ? : \
|
|
|
|
* To escape these character use the \ before the character.
|
|
|
|
*/
|
|
|
|
|
|
|
|
switch (ch) {
|
|
|
|
case '+':
|
|
|
|
case '-':
|
|
|
|
case '!':
|
|
|
|
case '(':
|
|
|
|
case ')':
|
|
|
|
case '{':
|
|
|
|
case '}':
|
|
|
|
case '[':
|
|
|
|
case ']':
|
|
|
|
case '^':
|
|
|
|
case '\"':
|
|
|
|
case '~':
|
|
|
|
case '*':
|
|
|
|
case '?':
|
|
|
|
case ':':
|
|
|
|
case '\\':
|
|
|
|
out.write('\\');
|
|
|
|
out.write(ch);
|
|
|
|
break;
|
|
|
|
case '&':
|
|
|
|
case '|':
|
|
|
|
// check if it is '&&' or '||' ~ check if the next char is '&'
|
|
|
|
// or '|'
|
|
|
|
if ((i + 1) < sz && str.charAt(i + 1) == ch) {
|
|
|
|
out.write('\\');
|
|
|
|
out.write(ch);
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
out.write(ch);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
out.write(ch);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ???????????????????????
|
|
|
|
*/
|
|
|
|
public static String getFirstLetter(String chinese) {
|
|
|
|
/**
|
|
|
|
* ???
|
|
|
|
*/
|
|
|
|
final int[] li_SecPosValue = {1601, 1637, 1833, 2078, 2274, 2302,
|
|
|
|
2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858,
|
|
|
|
4027, 4086, 4390, 4558, 4684, 4925, 5249, 5590};
|
|
|
|
final String[] lc_FirstLetter = {"A", "B", "C", "D", "E", "F", "G",
|
|
|
|
"H", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
|
|
|
|
"W", "X", "Y", "Z"};
|
|
|
|
if (chinese == null || chinese.trim().length() == 0) {
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
|
|
|
chinese = conversionStr(chinese, "GB2312", "ISO8859-1");
|
|
|
|
if (chinese.length() > 1) { // ?��?????????
|
|
|
|
int li_SectorCode = (int) chinese.charAt(0); // ????????
|
|
|
|
int li_PositionCode = (int) chinese.charAt(1); // ????��??
|
|
|
|
li_SectorCode = li_SectorCode - 160;
|
|
|
|
li_PositionCode = li_PositionCode - 160;
|
|
|
|
int li_SecPosCode = li_SectorCode * 100 + li_PositionCode;// ??????��??
|
|
|
|
if (li_SecPosCode > 1600 && li_SecPosCode < 5590) {
|
|
|
|
for (int i = 0; i < 23; i++) {
|
|
|
|
if (li_SecPosCode >= li_SecPosValue[i]
|
|
|
|
&& li_SecPosCode < li_SecPosValue[i + 1]) {
|
|
|
|
chinese = lc_FirstLetter[i];
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
chinese = conversionStr(chinese, "ISO8859-1", "GB2312");
|
|
|
|
chinese = chinese.substring(0, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return chinese;
|
|
|
|
}
|
|
|
|
|
|
|
|
private static String conversionStr(String str, String charsetName,
|
|
|
|
String toCharsetName) {
|
|
|
|
try {
|
|
|
|
str = new String(str.getBytes(charsetName), toCharsetName);
|
|
|
|
} catch (UnsupportedEncodingException ex) {
|
|
|
|
System.out.println("????????????????" + ex.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
return str;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ????????????
|
|
|
|
*
|
|
|
|
* @param html
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public static String checkStr(String html) {
|
|
|
|
try {
|
|
|
|
html = html.replaceAll("\r", "");
|
|
|
|
html = html.replaceAll("\n", "");
|
|
|
|
html = html.replaceAll("\"", "'");
|
|
|
|
html = html.replaceAll("\t", " ");
|
|
|
|
Pattern p_script;
|
|
|
|
Matcher m_script;
|
|
|
|
Pattern p_href;
|
|
|
|
Matcher m_href;
|
|
|
|
Pattern p_a;
|
|
|
|
Matcher m_a;
|
|
|
|
Pattern p_on;
|
|
|
|
Matcher m_on;
|
|
|
|
|
|
|
|
Pattern p_iframe;
|
|
|
|
Matcher m_iframe;
|
|
|
|
Pattern p_frameset;
|
|
|
|
Matcher m_frameset;
|
|
|
|
|
|
|
|
Pattern p_img;
|
|
|
|
Matcher m_img;
|
|
|
|
|
|
|
|
Pattern p_p1;
|
|
|
|
Matcher m_p1;
|
|
|
|
Pattern p_p2;
|
|
|
|
Matcher m_p2;
|
|
|
|
|
|
|
|
String stript_str = "<script[\\s\\S]+</script *>";
|
|
|
|
String href_str = " href *= *[\\s\\S]*script *:";
|
|
|
|
String on_str = " on[\\s\\S]*=";
|
|
|
|
String iframe_str = "<iframe[\\s\\S]+</iframe *>";
|
|
|
|
String frameset_str = "<frameset[\\s\\S]+</frameset *>";
|
|
|
|
String a_str = "<a ([^>])*>.*?</a([^>])*>";
|
|
|
|
//String img_str = "\\<img[^\\>]+\\>";
|
|
|
|
String p_str1 = "</p>";
|
|
|
|
String p_str2 = "<p>";
|
|
|
|
p_script = Pattern.compile(stript_str, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_script = p_script.matcher(html);
|
|
|
|
html = m_script.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
p_href = Pattern.compile(href_str, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_href = p_href.matcher(html);
|
|
|
|
html = m_href.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
p_a = Pattern.compile(a_str, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_a = p_a.matcher(html);
|
|
|
|
html = m_a.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
p_on = Pattern.compile(on_str, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_on = p_on.matcher(html);
|
|
|
|
html = m_on.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
p_iframe = Pattern.compile(iframe_str, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_iframe = p_iframe.matcher(html);
|
|
|
|
html = m_iframe.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
p_frameset = Pattern
|
|
|
|
.compile(frameset_str, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_frameset = p_frameset.matcher(html);
|
|
|
|
html = m_frameset.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
// p_img = Pattern.compile(img_str, Pattern.CASE_INSENSITIVE);
|
|
|
|
// m_img = p_img.matcher(html);
|
|
|
|
// html = m_img.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
p_p1 = Pattern.compile(p_str1, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_p1 = p_p1.matcher(html);
|
|
|
|
html = m_p1.replaceAll(""); // ????script???
|
|
|
|
|
|
|
|
p_p2 = Pattern.compile(p_str2, Pattern.CASE_INSENSITIVE);
|
|
|
|
m_p2 = p_p2.matcher(html);
|
|
|
|
html = m_p2.replaceAll(""); // ????script???
|
|
|
|
} catch (Exception e) {
|
|
|
|
System.err.println("Html2Text: " + e.getMessage());
|
|
|
|
}
|
|
|
|
|
|
|
|
return html;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static String substr(String value, int maxlength, String postfix) {
|
|
|
|
|
|
|
|
int k = 0;
|
|
|
|
int l = 0;
|
|
|
|
for (int i = 0; i < value.length() && maxlength > l * 2 + k; i++) {
|
|
|
|
if (value.charAt(i) > '\200') {
|
|
|
|
l++;
|
|
|
|
} else {
|
|
|
|
k++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// value????????????????????
|
|
|
|
if (l + k >= value.length()) {
|
|
|
|
return value;
|
|
|
|
} else if (maxlength >= l * 2 + k && l + k > 0) {
|
|
|
|
value = value.substring(0, l + k);
|
|
|
|
} else if (l + k > 0) {
|
|
|
|
value = value.substring(0, (l + k) - 1);
|
|
|
|
} else {
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
// ????????????????????????????????????????
|
|
|
|
if (!StringUtils.isEmpty(postfix)) {
|
|
|
|
value += postfix;
|
|
|
|
}
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ??????��??????????null???????????????????? ????????param Content:???????????? ????????? ??
|
|
|
|
* ?????????????null???????????????????? <p/> ??��?????20051220 ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public String nullToSpace(String Content) {
|
|
|
|
if (Content == null) {
|
|
|
|
Content = "";
|
|
|
|
}
|
|
|
|
return Content;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***************************************************** ??
|
|
|
|
* ?????GBK????????ISO8859_1???? ????????param strvalue ??????????????? ????????? ?? ???return
|
|
|
|
* String ????????????? ???????
|
|
|
|
* ******************************************************
|
|
|
|
*/
|
|
|
|
public String GBK2ISO(String strvalue) throws Exception {
|
|
|
|
try {
|
|
|
|
if (strvalue == null)
|
|
|
|
return null;
|
|
|
|
else {
|
|
|
|
strvalue = new String(strvalue.getBytes("GBK"), "ISO8859_1");
|
|
|
|
return strvalue;
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 去除换行符
|
|
|
|
* @param str
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public static String replaceBlank(String str) {
|
|
|
|
String dest = "";
|
|
|
|
if (str!=null) {
|
|
|
|
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
|
|
|
|
Matcher m = p.matcher(str);
|
|
|
|
dest = m.replaceAll("");
|
|
|
|
}
|
|
|
|
return dest;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|