geoinfo_eGov_work/src/main/java/geoinfo/util/StringUtil.java

1549 lines
38 KiB
Java
Raw Normal View History

2024-02-08 02:26:11 +00:00
/*******************************************************************/
/* Class Name : StringUtil */
/* Description : 문자열 처리 관련 Class */
/*******************************************************************/
/* Modification Log */
/* No DATE Company Author Description */
/* 01 2002/06/01 IRAM Initial Release */
/*******************************************************************/
package geoinfo.util;
import java.io.*;
import java.text.*;
import org.jfree.util.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <pre>
* Class
* </pre>
*
* @author IRAM
* @version 1.0
* @since 2002.01.
*/
public class StringUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(StringUtil.class);
public static String urlEncode(String str) {
return replace(java.net.URLEncoder.encode(str), "+", "%20");
}
/**
* <pre>
* source target .
* ) replace(' ','','') ->
* </pre>
*
* @param str
*
* @param pattern
*
* @param replace
*
* @return java.lang.String
*/
public static String replace(String str, String pattern, String replace) {
int s = 0; // 시작위치
int e = 0; // append하는 위치
if (pattern.equals(""))
return str;
StringBuffer result = new StringBuffer();
while ((e = str.indexOf(pattern, s)) >= 0) {
result.append(str.substring(s, e));
result.append(replace);
s = e + pattern.length();
} // while 종료
result.append(str.substring(s));
return result.toString();
}
/**
* <pre>
* source target .
* ) 1 .
* </pre>
*
* @param str
*
* @param pattern
*
* @param replace
*
* @return java.lang.String
*/
public static String replaceFirst1(String str, String pattern, String replace) {
int s = 0; // 시작위치
int e = 0; // append하는 위치
if (pattern.equals(""))
return str;
StringBuffer result = new StringBuffer();
while ((e = str.indexOf(pattern, s)) >= 0) {
result.append(str.substring(s, e));
result.append(replace);
s = e + pattern.length();
break; // 한번만 실행한 후 종료
} // while 종료
result.append(str.substring(s));
return result.toString();
}
/**
* <pre>
* .
* </pre>
*
* @param str
*
* @param sPos
*
* @param ePos
*
* @param replace
*
* @return String
*/
public static String replace(String str, int sPos, int ePos, String replace) {
StringBuffer result = new StringBuffer(str.substring(0, sPos));
result.append(replace);
result.append(str.substring(ePos));
return result.toString();
}
/**
* <pre>
* array .
* </pre>
*
* @param str
*
* @param delim
* delim
* @return String[] delim array
*/
public static String[] getArrToken(String str, String delim) {
java.util.StringTokenizer tk = new java.util.StringTokenizer(str, delim);
String[] arr = new String[tk.countTokens()];
for (int i = 0; i < arr.length; i++) {
arr[i] = tk.nextToken();
}
return arr;
}
/**
* <pre>
* array .
* </pre>
*
* @param str
*
* @param delim
* delim
* @return String[] delim array
*/
public static String[] getArrToken2(String str, String delim) {
return split(str, delim, true);
}
/**
* <pre>
* str " " length enter .
* </pre>
*
* @param str
*
* @param length
* Enter
* @return String Enter
*/
public static String HrInsEnterX(String str, int length) {
String[] tmp = getArrToken(str, " ");
String rtnStr = "";
int line_num = 1;
for (int i = 0; i < tmp.length; i++) {
if ((rtnStr + tmp[i]).length() > length * line_num) {
rtnStr += "\n";
line_num++;
}
rtnStr += " " + tmp[i];
}
return rtnStr;
}
/**
* <pre>
* str " " length enter .
* enter(\n) pad .
* </pre>
*
* @param str
*
* @param length
* Enter
* @param pad
* Enter
* @return String Enter
*/
public static String HrInsEnterX(String str, int length, String pad) {
return replace(HrInsEnterX(str, length), "\n", "\n" + pad);
}
/**
* <pre>
* str length enter .
* " " string length /n .
* HrInsEnterX length enter length .
* </pre>
*
* @param str
*
* @param length
* Enter
* @return String Enter
*/
public static String HrInsEnterX2(String str, int length) {
String[] tmp = getArrToken(str, " ");
String rtnStr = "";
String this_line = "";
for (int i = 0; i < tmp.length; i++) {
this_line += tmp[i];
if (this_line.length() > length) {
rtnStr += this_line + "\n";
this_line = "";
} else if (this_line.indexOf("\n") != -1) {
// 엔터가 있을 경우
rtnStr += this_line;
this_line = "";
}
}
rtnStr += this_line;
return rtnStr;
}
/**
* <pre>
* string integer .
* </pre>
*
* @param str
*
* @return integer ("") .
*/
public static String getIntString(String str) {
String rtn = "";
try {
rtn = String.valueOf(Integer.parseInt(str));
} catch (NumberFormatException e) {
LOGGER.debug("error", e);
rtn = "";
} catch (Exception e) {
LOGGER.debug("error", e);
rtn = "";
}
return rtn;
}
/**
* <pre>
* str string .
* </pre>
*
* @param str
*
* @return String
*/
public static String getNumber(String str) {
if (str == null) {
return str;
}
StringBuffer sb = new StringBuffer(str);
StringBuffer newSb = new StringBuffer();
int sbLen = sb.length();
char number;
for (int i = 0; i < sbLen; i++) {
number = sb.charAt(i);
if (number >= 48 && number <= 57)
newSb.append(sb.charAt(i));
}
return newSb.toString();
}
/**
* <pre>
* 15
* "..." .
* </pre>
*
* @param input
*
* @return String ...
*/
public static String fixLength(String input) {
return fixLength(input, 15, "...");
}
/**
* <pre>
*
* "..." .
* </pre>
*
* @param input
*
* @param limit
*
* @return String ...
*/
public static String fixLength(String input, int limit) {
return fixLength(input, limit, "...");
}
/**
* <pre>
*
* .
* </pre>
*
* @param input
*
* @param limit
*
* @param postfix
*
* @return String postfix
*/
public static String fixLength(String input, int limit, String postfix) {
char[] charArray = input.toCharArray();
if (limit >= charArray.length)
return input;
return new String(charArray, 0, limit).concat(postfix);
}
/**
* <pre>
*
* (Unicode) "..." .
*
* fixLength char byte
* .
* </pre>
*
* @param input
*
* @param limitByte
* (byte)
* @return ...
*/
public static String fixUnicodeLength(String input, int limitByte) {
return fixLength(input, limitByte, "...");
}
/**
* <pre>
*
* .
*
* fixLength char byte
* .
* </pre>
*
* @param input
*
* @param limitByte
* (byte)
* @param postfix
*
* @return String postfix
*/
public static String fixUnicodeLength(String input, int limitByte, String postfix) {
/*
* -1 . 21 . 20 String , .
* . 0 -1 .
*/
byte[] outputBytes = input.getBytes();
String output = outputBytes.length <= limitByte ? input
: (new String(outputBytes, 0, limitByte).length() == 0
? new String(outputBytes, 0, limitByte - 1).concat(postfix)
: new String(outputBytes, 0, limitByte)).concat(postfix);
return output;
}
/**
* <pre>
* String EUC_KR encoding.
* </pre>
*
* @param text
* encoding
* @return String encoding
*/
public static String getEUC_KR(String text) {
String rtn;
rtn = "";
if (text == null)
return rtn;
else {
try {
return new String(text.getBytes("8859_1"), "EUC-KR");
} catch (UnsupportedEncodingException UEE) {
return rtn;
}
}
// return text;
}
/**
* <pre>
* String EUC_KR encoding.
* </pre>
*
* @param text
* encoding
* @return String encoding
*/
public static String getUTF8(String text) {
String rtn;
rtn = "";
if (text == null)
return rtn;
else {
try {
return new String(text.getBytes("8859_1"), "UTF-8");
} catch (UnsupportedEncodingException UEE) {
return rtn;
}
}
// return text;
}
/**
* <pre>
* String EUC_KR encoding.
* </pre>
*
* @param text
* encoding
* @return String encoding
*/
public static String[] getUTF8(String[] arrText) {
String[] arrRtn = new String[arrText.length];
for (int i = 0; i < arrText.length; i++) {
arrRtn[i] = getUTF8(arrText[i]);
}
return arrRtn;
}
/**
* <pre>
* String EUC_KR encoding.
* </pre>
*
* @param text
* encoding
* @return String encoding
*/
public static String[] getEUC_KR(String[] arrText) {
String[] arrRtn = new String[arrText.length];
for (int i = 0; i < arrText.length; i++) {
arrRtn[i] = getEUC_KR(arrText[i]);
}
return arrRtn;
}
/**
* <pre>
* String 8859_1(Unicode) encoding.
* </pre>
*
* @param text
* 8859_1 encoding
* @return String 8859_1 encoding
*/
public static String get8859_1(String text) {
String rtn;
rtn = "";
if (text == null)
return rtn;
else {
try {
return new String(text.getBytes("euc-kr"), "8859_1");
} catch (UnsupportedEncodingException UEE) {
return rtn;
}
}
}
/**
* <pre>
* String from enc to enc .
* </pre>
*
* @param text
* @param fromenc
* @param toenc
* @return
*/
public static String[] getEncodeStr(String[] arrText, String fromenc, String toenc) {
String[] arrRtn = new String[arrText.length];
for (int i = 0; i < arrText.length; i++) {
arrRtn[i] = getEncodeStr(arrText[i], fromenc, toenc);
}
return arrRtn;
}
/**
* <pre>
* String from enc to enc .
* </pre>
*
* @param text
* @param fromenc
* @param toenc
* @return
*/
public static String getEncodeStr(String text, String fromenc, String toenc) {
String rtn;
rtn = "";
if (text == null)
return rtn;
else {
try {
return new String(text.getBytes(fromenc), toenc);
} catch (UnsupportedEncodingException UEE) {
return rtn;
}
}
}
/**
* <pre>
* String encoding.
* </pre>
*
* @param text
* encoding
* @param fromEncode
* text encoding
* @param toEncode
* encoding
* @return String
*/
public static String getConvertCharset(String text, String fromEncode, String toEncode) {
String rtn;
rtn = "";
if (text == null)
return rtn;
else {
try {
return new String(text.getBytes(fromEncode), toEncode);
} catch (UnsupportedEncodingException UEE) {
return rtn;
}
}
}
/**
* <pre>
* HTML .
* & --->> &amp;
* < --->> &lt;
* > --->> &gt;
* ' --->> &acute;
* " --->> &quot;
* | --->> &brvbar;
* </pre>
*
* @param str
* html
* @return String html
*/
public static String getSpecialCharacters(String str) {
str = replace(str, "&", "&amp;");
str = replace(str, "<", "&lt;");
str = replace(str, ">", "&gt;");
// str = replace(str, "'", "&acute;");
str = replace(str, "\"", "&quot;");
// str = replace(str, "|", "&brvbar;");
//
// str = replace(str, "\n", "<BR>");
// str = replace(str, "\r", "");
return str;
}
/**
* <pre>
* HTML .
* &amp; --->> &
* &lt; --->> <
* &gt; --->> >
* &acute; --->> '
* &quot; --->> "
* &brvbar; --->> |
* </pre>
*
* @param str
* html
* @return String html
*/
public static String getRreplaceSpecialCharacters(String str) {
str = replace(str, "<BR>", "\n");
str = replace(str, "&amp;", "&");
str = replace(str, "&lt;", "<");
str = replace(str, "&gt;", ">");
str = replace(str, "&acute;", "'");
str = replace(str, "&quot;", "\"");
str = replace(str, "&brvbar;", "|");
return str;
}
/**
* <pre>
* String comma .
* </pre>
*
* @param str
*
* @return String comma
*/
public static String getComma(String str) {
return getComma(str, true);
}
/**
* <pre>
* String comma .
* isTruncated false .
* </pre>
*
* @param str
*
* @param isTruncated
* true .
* @return String comma
*/
public static String getComma(String str, boolean isTruncated) {
DecimalFormat commaFormat; // comma 삽입을 위한 변수
if (str == null)
return "";
else if (str.trim().equals(""))
return "";
else if (str.trim().equals("&nbsp;"))
return "&nbsp;";
else {
// str에 .이 있으면 Float으로 처리한다.
int pos = str.indexOf(".");
if (pos != -1) {
if (!isTruncated) {
commaFormat = new DecimalFormat("#,##0.00");
return commaFormat.format(Float.parseFloat(str.trim()));
} else {
commaFormat = new DecimalFormat("#,##0");
return commaFormat.format(Long.parseLong(str.trim().substring(0, pos)));
}
} else {
commaFormat = new DecimalFormat("#,##0");
return commaFormat.format(Long.parseLong(str.trim()));
}
}
}
/**
* val . ex)000-000
*
* @param val
* @return
*/
public static String getZip(String val) {
String tmp = val.replaceAll("-", "");
if (tmp.length() > 5) {
tmp = tmp.substring(0, 3) + "-" + tmp.substring(3);
}
return tmp;
}
/**
* val . ex)000000-0000000
*
* @param val
* @return
*/
public static String getJumin(String val) {
String tmp = val.replaceAll("-", "");
if (tmp.length() > 6) {
tmp = tmp.substring(0, 6) + "-" + tmp.substring(6);
}
return tmp;
}
public static String getJumin(String val, String fmt) {
String tmp = val.replaceAll("-", "");
if (tmp.length() > 6) {
tmp = tmp.substring(0, 6) + "-" + tmp.substring(6, 7);
for (int i = 0; i < 6; i++) {
tmp += fmt;
}
}
return tmp;
}
/**
* <pre>
* Long comma String .
* </pre>
*
* @param lstr
* long
* @return String long comma
*/
public static String getComma(Long lstr) {
DecimalFormat commaFormat; // comma 삽입을 위한 변수
commaFormat = new DecimalFormat("#,##0");
if (lstr == null)
return "";
else
return commaFormat.format(lstr);
}
/**
* <pre>
* text format .
* getFormatedText("0193372412","???-???-????") --->> 019-337-2412
* </pre>
*
* @param text
*
* @param format
*
* @return String
*/
public static String getFormatedText(String text, String format) {
String rtn;
int start, i, j, len;
int tCount, fCount;
tCount = text.length();
fCount = format.length();
rtn = "";
if (text.equals(""))
return rtn;
if (text.equals("&nbsp;"))
return "&nbsp;";
// text가 01252412 이고 format 이 ????-???? 이면 0125-2412로 출력
// text에서 -를 제거한다.
for (i = 0; i < tCount; ++i) {
if (!text.substring(i, i + 1).equals("-"))
rtn = rtn + text.substring(i, i + 1);
}
text = rtn;
tCount = text.length();
// 포멧에서 ?의 count
len = 0;
for (j = 0; j < fCount; ++j) {
if (format.substring(j, j + 1).equals("?"))
++len;
}
// text의 길이가 len보다 작으면 앞에 0를 붙인다.
if (tCount < len) {
for (i = 0; i < (len - tCount); ++i) {
text = '0' + text;
}
tCount = len;
}
rtn = "";
start = 0;
for (i = 0; i < tCount; ++i) {
for (j = start; j < fCount; ++j) {
if (format.substring(j, j + 1).equals("?")) {
rtn = rtn + text.substring(i, i + 1);
start = start + 1;
break;
} else {
rtn = rtn + format.substring(j, j + 1);
start = start + 1;
}
}
}
return rtn + format.substring(start);
}
/**
* <pre>
* format String .
* getFormatedText("019-337-2412","???-???-????") --->> 0193372412
* </pre>
*
* @param text
*
* @param format
*
* @return String
*/
public static String getRawText(String text, String format) {
int start, i, j, tCount, fCount;
String rtn;
tCount = text.length();
fCount = format.length();
rtn = "";
if (text.equals(""))
return rtn;
if (text.equals("&nbsp;"))
return "&nbsp;";
// test가 0125-2412 이고 format 이 ????-???? 이면 01252412로 출력
start = 0;
for (i = 0; i < tCount; ++i) {
for (j = start; j < fCount; ++j) {
if (format.substring(j, j + 1).equals("?")) {
rtn = rtn + text.substring(i, i + 1);
start = start + 1;
break;
} else {
start = start + 1;
break;
}
}
}
return rtn;
}
/**
* <pre>
* size 0 String .
* </pre>
*
* @param num
*
* @param size
* 0
* @return String size 0
*/
public static String getZeroBaseString(int num, int size) {
return getZeroBaseString(String.valueOf(num), size);
}
/**
* <pre>
* size 0 String .
* </pre>
*
* @param num
*
* @param size
* 0
* @return String size 0
*/
public static String getZeroBaseString(String num, int size) {
String zeroBase = "";
if (num.length() >= size)
return num;
for (int index = 0; index < (size - num.length()); ++index) {
zeroBase += "0";
}
return zeroBase + num;
}
/**
* <pre>
* getMethod .
* "%20" .
* </pre>
*
* @param str
*
* @return String
*/
public static String getGetMethodFormat(String str) {
String rtn = "";
rtn = replace(str, "\n", " ");
rtn = replace(rtn, " ", "%20");
return rtn;
}
/**
* val .
*
* @param val
* @return
*/
public static String getCaseNo(String case_no, String merge_no) {
String case_nm = "";
if (!merge_no.equals("")) {
case_nm = merge_no;
} else if (case_no.length() >= 10) {
case_nm = "제" + case_no.substring(0, 4) + "-";
if (case_no.substring(4, 5).equals("A")) {
case_nm += "심사";
} else if (case_no.substring(4, 5).equals("B")) {
case_nm += "조정";
} else if (case_no.substring(4, 5).equals("C")) {
case_nm += "재심";
} else if (case_no.substring(4, 5).equals("D")) {
case_nm += "조";
} else if (case_no.substring(4, 5).equals("X")) {
case_nm += "";
}
if (case_no.substring(10).equals("M")) {
case_nm += "(병합)";
}
try {
case_nm += String.valueOf(Integer.parseInt(case_no.substring(5, 10))) + "호";
} catch(NumberFormatException e) {
LOGGER.debug("error", e);
case_nm += String.valueOf(case_no.substring(5, 10)) + "호";
} catch(IndexOutOfBoundsException e) {
LOGGER.debug("error", e);
case_nm += String.valueOf(case_no.substring(5, 10)) + "호";
} catch(Exception e) {
LOGGER.debug("error", e);
case_nm += String.valueOf(case_no.substring(5, 10)) + "호";
}
}
return case_nm;
}
/**
* <pre>
* .
* </pre>
*
* @return String
*/
public static String svrDomain(String pageUrl, String protocol) {
String svr_domain = "";
int startPos = pageUrl.indexOf("http://");
int endPos = -1;
if (startPos >= 0) {
endPos = pageUrl.indexOf("/", startPos + 7);
} else {
startPos = pageUrl.indexOf("https://");
endPos = pageUrl.indexOf("/", startPos + 8);
}
svr_domain = pageUrl.substring(startPos, endPos);
return replace(svr_domain, "https://", protocol + "://");
}
public static String svrDomain(String pageUrl) {
return svrDomain(pageUrl, "http");
}
/**
* <pre>
* str size f_char .
* </pre>
*
* @param str
*
* @param f_char
*
* @param size
* f_char
* @return String f_char
*/
public static String lpad(String str, String f_char, int size) {
if (str.length() >= size)
return str;
else
return getFillChar("", f_char, size - str.length()) + str;
}
/**
* <pre>
* str size f_char .
* </pre>
*
* @param str
*
* @param f_char
*
* @param size
* f_char
* @return String f_char
*/
public static String rpad(String str, String f_char, int size) {
if (str.length() >= size)
return str;
else
return str + getFillChar("", f_char, size - str.length());
}
/**
* <pre>
* str size f_char .
* </pre>
*
* @param str
*
* @param f_char
*
* @param size
* f_char
* @return String f_char
*/
public static String getFillChar(String str, String f_char, int size) {
String fillChar = "";
if (str.length() >= size)
return str;
for (int index = 0; index < (size - str.length()); ++index) {
fillChar += f_char;
}
return str + fillChar;
}
/**
* <pre>
* str size(Byte) f_char .
* str byte .
* </pre>
*
* @param str
*
* @param f_char
*
* @param size
* f_char
* @return String f_char
*/
public static String getFillCharByte(String str, String f_char, int size) {
String fillChar = "";
if (str.getBytes().length >= size)
return str;
for (int index = 0; index < (size - str.getBytes().length); ++index) {
fillChar += f_char;
}
return str + fillChar;
}
/**
* <pre>
* (strTarget) (strDelim)
* .
* </pre>
*
* @param strTarget
*
* @param strDelim
* .
* @param bContainNull
* . true : , false : .
* @return .
*/
public static String[] split(String strTarget, String strDelim, boolean bContainNull) {
// StringTokenizer는 구분자가 연속으로 중첩되어 있을 경우 공백 문자열을 반환하지 않음.
// 따라서 아래와 같이 작성함.
int index = 0;
String[] resultStrArray = new String[getStrCnt(strTarget, strDelim) + 1];
String strCheck = new String(strTarget);
while (strCheck.length() != 0) {
int begin = strCheck.indexOf(strDelim);
if (begin == -1) {
resultStrArray[index] = strCheck;
break;
} else {
int end = begin + strDelim.length();
if (bContainNull) {
resultStrArray[index++] = strCheck.substring(0, begin);
}
strCheck = strCheck.substring(end);
if (strCheck.length() == 0 && bContainNull) {
resultStrArray[index] = strCheck;
break;
}
}
}
return resultStrArray;
}
/**
* <pre>
* strTarget strSearch
* </pre>
*
* @param strTarget
*
* @param strSearch
*
* @return int
*/
public static int getStrCnt(String strTarget, String strSearch) {
int result = 0;
String strCheck = new String(strTarget);
for (int i = 0; i < strTarget.length();) {
int loc = strCheck.indexOf(strSearch);
if (loc == -1) {
break;
} else {
result++;
i = loc + strSearch.length();
strCheck = strCheck.substring(i);
}
}
return result;
}
// URL 변환
public static String encodeURL(String theURL) {
return replace(replace(theURL, "?", "@QUES@"), "&", "@AMP@");
}
public static String decodeURL(String theURL) {
return replace(replace(theURL, "@QUES@", "?"), "@AMP@", "&");
}
/**
* <pre>
* src .
* </pre>
*
* @param src
*
* @return Strin
*/
public static String makeFUpper(String src) {
if (src != null && src.length() > 0) {
return src.substring(0, 1).toUpperCase() + src.substring(1).toLowerCase();
} else {
return "";
}
}
/**
* <pre>
* 1 String .
* </pre>
*
* @param array
* 1
* @param str
*
* @param ignorecase
* true
* @return boolean true false
*/
public static boolean isExistInArray(String[] array, String str, boolean ignorecase) {
if (array == null)
return false;
for (int i = 0; i < array.length; ++i) {
if (ignorecase) {
if (array[i].toUpperCase().equals(str.toUpperCase()))
return true;
} else {
if (array[i].equals(str))
return true;
}
}
return false;
}
/**
* <pre>
* .
* </pre>
*
* @param arrayStr
*
* @param pos
*
* @param dmt
*
* @return String
*/
public static String arrayCol(String arrayStr, int pos) {
return arrayCol(arrayStr, pos, "|");
}
public static String arrayCol(String arrayStr, int pos, String dmt) {
if (arrayStr.equals("")) {
return "";
}
String array[] = split(arrayStr, dmt, true);
return array.length < pos - 1 ? "" : array[pos - 1];
}
/**
* <pre>
* .
* </pre>
*
* @param arrayStr
*
* @param key
*
* @param dmt
*
* @return String
*/
public static boolean arrayFind(String arrayStr, String key, String dmt) {
if (arrayStr.equals("")) {
return false;
}
String array[] = split(arrayStr, dmt, true);
for (int i = 0; i < array.length; i++) {
if (array[i].equals(key)) {
return true;
}
}
return false;
}
/**
* <pre>
* String substring
* </pre>
*
* @return String
*/
public static String substr(String str, int sPos, int ePos) {
if (sPos > ePos)
return "";
return str.length() < ePos ? "" : str.substring(sPos, ePos);
}
public static String substr(String str, int sPos) {
return substr(str, sPos, str.length());
}
// HTML내의 RGB값을 16진수로 변황
public static String rgbToHexInHtml(String cHtml) throws Exception {
while (true) {
int sPos = cHtml.toLowerCase().indexOf("rgb(");
if (sPos < 0) {
break;
}
int ePos = cHtml.toLowerCase().indexOf(")", sPos);
String rgb_text = cHtml.substring(sPos + 4, ePos);
String rgb[] = StringUtil.split(StringUtil.replace(rgb_text, " ", "") + ",,", ",", true);
String rgb16 = "";
for (int i = 0; i < 3; i++) {
rgb16 += Integer.toHexString(Integer.parseInt(rgb[i]));
}
cHtml = StringUtil.replace(cHtml, "rgb(" + rgb_text + ")", rgb16);
cHtml = StringUtil.replace(cHtml, "RGB(" + rgb_text + ")", rgb16);
}
return cHtml;
}
/**
* <pre>
* .
* </pre>
*
* @return String
*/
public static String ltrim(String str) {
int len = str.length();
int st = 0;
int off = 0;
char[] val = str.toCharArray();
while ((st < len) && (val[off + st] <= ' ')) {
st++;
}
return st > 0 ? str.substring(st) : str;
}
/**
* <pre>
* .
* </pre>
*
* @return String
*/
public static String rtrim(String str) {
int len = str.length();
int st = 0;
int off = 0;
char[] val = str.toCharArray();
while ((st < len) && (val[off + len - 1] <= ' ')) {
len--;
}
return len < str.length() ? str.substring(0, len) : str;
}
/**
* <pre>
* BackSlash .
* </pre>
*
* @return String
* @changed 2002.09.14
*/
public static String addBackSlash(String pm_sString) {
String lm_sRetString = "";
for (int i = 0; i < pm_sString.length(); i++) {
if (pm_sString.charAt(i) == '\\') {
lm_sRetString += "\\\\";
} else if (pm_sString.charAt(i) == '\'') {
lm_sRetString += "\\\'";
} else {
lm_sRetString += pm_sString.charAt(i);
}
}
return lm_sRetString;
}
/**
* <pre>
*
* </pre>
*
* @return String
* @changed 2017.09.14
*/
public static String concatStr(String[] strArr, String delimeter) {
String rtnStr = "";
for(int i=0; i < strArr.length; i++) {
if(!strArr[i].trim().equals("")) {
if(!rtnStr.equals("")) { rtnStr += delimeter; }
rtnStr += strArr[i].trim();
}
}
return rtnStr;
}
/**
* <pre>
* .
* </pre>
*
* @return String
* @changed 2002.09.23
*/
public static String strEncode(String inputStr) {
String result = "";
inputStr = inputStr.trim();
for (int i = 0; i < inputStr.length(); i++) {
int val = (int) inputStr.charAt(i) + i * 29;
result = result + lpad(String.valueOf(val), "0", 3);
}
return result;
}
/**
* <pre>
* .
* </pre>
*
* @return String
* @changed 2002.09.23
*/
public static String strDecode(String inputStr) {
String result = "";
inputStr = inputStr.trim();
//웹 취약점 때문에 수정
if (inputStr.length() > 0) {
for (int i = 0; i < inputStr.length() / 3; i++) {
int num = Integer.parseInt(inputStr.substring(i * 3, i * 3 + 3)) - (i * 29);
//웹 취약점 때문에 수정
if (num > 0) {
result = result + (char) num;
}
}
}
return result;
}
/**
* <pre>
* &nbsp;
* </pre>
*
* @return String
* @changed 2002.09.23
*/
public static String nbsp(int count) {
String result = "";
for (int i = 0; i < count; i++) {
result = result + "&nbsp;";
}
return result;
}
public static boolean containsCharOnly(String input, String chars) {
for (int i = 0; i < input.length(); i++) {
boolean isOk = false;
for (int j = 0; j < chars.length(); j++) {
if (input.charAt(i) == chars.charAt(j)) {
isOk = true;
break;
}
}
if (!isOk) {
return false;
}
}
return true;
}
public static boolean containsBadChar(String input, String chars) {
for (int i = 0; i < input.length(); i++) {
boolean isOk = false;
for (int j = 0; j < chars.length(); j++) {
if (input.charAt(i) == chars.charAt(j)) {
isOk = true;
break;
}
}
if (isOk) {
return true;
}
}
return false;
}
public static String streamToStr(InputStream in) throws Exception {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
int bcount = 0;
byte[] buf = new byte[2048];
int read_retry_count = 0;
try {
while (true) {
int n = in.read(buf);
if (n > 0) {
bcount += n;
bout.write(buf, 0, n);
} else if (n == -1)
break;
}
bout.flush();
bout.close();
return new String(bout.toByteArray());
} catch (NumberFormatException e) {
LOGGER.debug("error", e);
return "";
} catch (IndexOutOfBoundsException e) {
LOGGER.debug("error", e);
return "";
} catch (IOException e) {
LOGGER.debug("error", e);
return "";
} catch (Exception e) {
LOGGER.debug("error", e);
return "";
}
}
/**
* <pre>
* GET
* </pre>
*
* @return boolean
* @changed 2015.10.13
*/
public static boolean blockParam(String queryStr, String okParam) {
if (queryStr != null && !queryStr.equals("")) {
String[] params = split(queryStr, "&", true);
for (int i = 0; i < params.length; i++) {
String[] arr = split(params[i], "=", true);
if (arr[0].equals("method")) {
continue;
}
if (okParam.indexOf(arr[0] + ",") < 0) {
return false;
}
}
}
return true;
}
public static String nvl(String src, String target) {
if (src == null) {
return target;
} else {
return src;
}
}
public static void main(String[] args) {
try {
java.io.InputStream in = new FileInputStream(
"D:/iram/iramlib/src/iram/lib/db/helper/JDBCStatementHelper.java");
System.out.println(StringUtil.streamToStr(in));
in.close();
} catch (NumberFormatException e) {
LOGGER.debug("error", e);
} catch (IndexOutOfBoundsException e) {
LOGGER.debug("error", e);
} catch (IOException e) {
LOGGER.debug("error", e);
} catch (Exception e) {
LOGGER.debug("error", e);
}
}
/**
* <pre>
* \t
* </pre>
*
* @return String
* @changed 2025.11.03 YJI
*/
public static String removeTabStr(String str) {
String rtnStr = "";
if (str != null && !"".equals(str)) {
rtnStr = str.replace("\t", "");
}
return rtnStr;
}
2024-02-08 02:26:11 +00:00
}