728x90
ํ์ผ๋ก ๋ณด๊ธฐ๋ ์๋์..
์ ์ฑ์ฝ๋ ็ก only java..
/**
* @Class Name : StringUtil.java
* @Description : ๋ฌธ์์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ด๋ จ ์ ํธ๋ฆฌํฐ
* @Modification Information
* @author ony
**/
package com.sample.controller; // ์ด๋ฆ ์์ ๋ณ๊ฒฝํจ
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.security.SecureRandom;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class StringUtil {
/** [1]
* ๋น ๋ฌธ์์ด ""
* **/
public static final String EMPTY = "";
/** [2]
* Padding์ ํ ์ ์๋ ์ต๋ ์์น
* // private static final int PAD_LIMIT = 8192;
* An array of Strings used for padding
* Used for efficient space padding. The length of each String expands as needed **/
private static final String[] PADDING = new String[Character.MAX_VALUE];
static {
/** space padding is most common, start with 64 chars **/
PADDING[32] = " ";
}
/** [3]
* ๋ฌธ์์ด์ด ์ง์ ํ ๊ธธ์ด๋ฅผ ์ด๊ณผํ์์ ๋
* ์ง์ ํ ๊ธธ์ด๊น์ง ์ถ๋ ฅ + ํน์ ๋ฌธ์์ด์ ๋ถํ์ฃผ๋ ๋ฉ์๋
* @param source ์๋ณธ ๋ฌธ์์ด ๋ฐฐ์ด
* @param output ์ถ๊ฐํ ๋ฌธ์์ด
* @param slength ์ง์ ๊ธธ์ด
* @return ์ง์ ๊ธธ์ด ๋งํผ ์ถ๋ ฅ ํ, ํน์ ๋ฌธ์์ด ํฉ์ณ์ฃผ๋ ๋ฉ์๋
* **/
public static String cutStringAdd(String source, String output, int slength){
String returnVal = null;
if (source != null) {
if (source.length() > slength) {
returnVal = source.substring(0, slength) + output;
} else
returnVal = source;
}
return returnVal;
}
/** [4]
* ๋ฌธ์์ด์ด ์ง์ ํ ๊ธธ์ด๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ, ์ด๊ณผํ ๋ฌธ์์ด์ ์ญ์ ํ๋ ๋ฉ์๋
* @param source ์๋ณธ ๋ฌธ์์ด ๋ฐฐ์ด
* @param slength ์ง์ ๊ธธ์ด
* @return ์ง์ ๊ธธ์ด ๋งํผ ๋ฌธ์์ด ์๋ฆ
* **/
public static String cutString(String source, int slength){
String result = null;
if (source != null) {
if (source.length() > slength) {
result = source.substring(0, slength);
} else
result = source;
}
return result;
}
/** [5]
* ๋ฌธ์์ด ๊ฒ์ฆ: String์ด ๋น์๊ฑฐ๋("") null์ธ์ง ๊ฒ์ฆ
*
* in case)
* "", null = true
* " ", "string", " string " = false
*
* @param str ์ฒดํฌ ๋์ String Object์ด๋ฉฐ null ํ์ฉ
* @return ์
๋ ฅ๋ฐ์ ๋ฌธ์์ด์ด ๋น ๋ฌธ์์ด์ด๊ฑฐ๋ null์ธ ๊ฒฝ์ฐ true ๋ฐฐ์ถ
* **/
public static boolean isEmpty(String str){
return str == null || str.length() == 0;
}
/** [6]
* ๋ฌธ์์ด์ ํฌํจ๋ ๋ชจ๋ ๋์ ๋ฌธ์(char) ์ ๊ฑฐ
*
* in case)
* StringUtil.remove("test",'t') = "es"
*
* @param str ๊ธฐ์ค ๋ฌธ์์ด
* @param remove ์
๋ ฅ๋ฐ์ ๋ฌธ์์ด์์ ์ ๊ฑฐํ ๋์ ๋ฌธ์์ด
* @return ์ ๊ฑฐํ ๋์์ด ์ ๊ฑฐ๋ ๋ฌธ์์ด.
* **/
public static String remove(String str, char remove){
if(isEmpty(str) || str.indexOf(remove) == -1){
return str;
}
char[] chars = str.toCharArray();
int pos = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] != remove) {
chars[pos++] = chars[i];
}
}
return new String(chars, 0, pos);
}
/** [7]
* ๋ฌธ์์ด ๋ด๋ถ์ ์ฝค๋ง character(,)์ ์ ๊ฑฐ - 6๋ฒ func ์ฌ์ฉ
*
* in case)
* StringUtil.removeCommaChar("hi,hello,goodmorning") = "hihellogoodmorning"
*
* @param str ๋ฌธ์์ด
* @return ","(์ฝค๋ง) ๊ฐ ์ ๊ฑฐ๋ str
* **/
public static String removeCommaChar(String str){
return remove(str, ',');
// -, / ๋ฑ๋ฑ ํ์ฉ ๊ฐ๋ฅ์ฑ์ ์ํ ์์
}
/** [8]
* ์๋ณธ ๋ฌธ์์ด์ ํฌํจ๋ ํน์ ๋ฌธ์์ด์ ์๋ก์ด ๋ฌธ์์ด๋ก ์นํ
*
* @param source ์๋ณธ ๋ฌธ์์ด
* @param subject ๋ณํ ์ํฌ ๋ฌธ์์ด
* @param object ๋ณํ ํ
์คํธ
* @return ์นํ ์๋ฃ๋ ๋ฌธ์์ด
* **/
public static String replace(String source, String subject, String object) {
StringBuffer rtnStr = new StringBuffer();
String preStr = "";
String nextStr = source;
String srcStr = source;
while (srcStr.indexOf(subject) >= 0) {
preStr = srcStr.substring(0, srcStr.indexOf(subject));
nextStr = srcStr.substring(srcStr.indexOf(subject) + subject.length(), srcStr.length());
srcStr = nextStr;
rtnStr.append(preStr).append(object);
}
rtnStr.append(nextStr);
return rtnStr.toString();
}
/** [9]
* ์๋ณธ ๋ฌธ์์ด์ ํฌํจ๋ ํน์ ๋ฌธ์์ด ์ฒซ๋ฒ์งธ ํ ๊ฐ ๋ง์ ์๋ก์ด ๋ฌธ์์ด๋ก ์นํ
*
* @param source ์๋ณธ ๋ฌธ์์ด
* @param subject ๋ณํ ์ํฌ ๋ฌธ์์ด
* @param object ๋ณํ ํ
์คํธ
* @return ์นํ ์๋ฃ๋ ๋ฌธ์์ด
*
* source์ subject๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์๋ณธ source ์ ์ถ
* **/
public static String replaceOnce(String source, String subject, String object) {
StringBuffer rtnStr = new StringBuffer();
String preStr = "";
String nextStr = source;
if (source.indexOf(subject) >= 0) {
preStr = source.substring(0, source.indexOf(subject));
nextStr = source.substring(source.indexOf(subject) + subject.length(), source.length());
rtnStr.append(preStr).append(object).append(nextStr);
return rtnStr.toString();
} else {
return source;
}
}
/** [10]
* str ์ค searchStr์ ์์ ์์น๋ฅผ ๋ฐํ
* (์
๋ ฅ ๊ฐ ์ค null์ด ์๋ ๊ฒฝ์ฐ/searchStr์ด ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํ)
*
* @param str ๊ฒ์ ๋ฌธ์์ด
* @param searchStr ๊ฒ์ ๋์ ๋ฌธ์์ด
* @return searchStr์ ์์น index
* **/
public static int indexOf(String str, String searchStr) {
if (str == null || searchStr == null)
{
return -1;
}
return str.indexOf(searchStr);
}
/** [11]
* ๊ฐ์ฒด๊ฐ null์ธ์ง ํ์ธํ๊ณ null์ธ ๊ฒฝ์ฐ ""๋ก ๋ณ๊ฒฝํ๋ ๋ฉ์๋
*
* @param object ์๋ณธ ๊ฐ์ฒด
* @return resultVal ๋ฌธ์์ด
* **/
public static String isNullToString(Object object) {
String string = "";
if (object != null) {
string = object.toString().trim();
}
return string;
}
/** [12]
* ๋ฌธ์์ด์์ {@link Character#isWhitespace(char)}์ ์ ์๋
* ๋ชจ๋ ๊ณต๋ฐฑ๋ฌธ์ ์ ๊ฑฐ
*
* in case)
* StringUtil.removeWhitespace(null) = null
* StringUtil.removeWhitespace(" a b c ") = "abc"
*
* @param str ๊ณต๋ฐฑ๋ฌธ์๋ฅผ ์ ๊ฑฐํ ๋ฌธ์์ด
* @return ๊ณต๋ฐฑ๋ฌธ์๊ฐ ์ ๊ฑฐ๋ ๋ฌธ์์ด.
* **/
public static String removeWhitespace(String str) {
if (isEmpty(str)) {
return str;
}
int sz = str.length();
char[] chs = new char[sz];
int count = 0;
for (int i = 0; i < sz; i++) {
if (!Character.isWhitespace(str.charAt(i))) {
chs[count++] = str.charAt(i);
}
}
if (count == sz) {
return str;
}
return new String(chs, 0, count);
}
/** [13]
* HTML ์ฝ๋๊ฐ ๋ค์ด๊ฐ ๋ฌธ์๋ฅผ ํ์ํ๋ ๊ฒฝ์ฐ ํ๊ทธ์ ์์์ ๋ง์์ฃผ๋ ๋ฉ์๋
*
* @param strString ์ฒดํฌ ๋์ ๋ฌธ์์ด
* @return HTML ํ๊ทธ๋ฅผ ์นํํ ๋ฌธ์์ด
* **/
public static String checkHtmlView(String strString) {
String strNew = "";
StringBuffer strTxt = new StringBuffer("");
char chrBuff;
int len = strString.length();
for (int i = 0; i < len; i++) {
chrBuff = (char) strString.charAt(i);
switch (chrBuff) {
case '<':
strTxt.append("<");
break;
case '>':
strTxt.append(">");
break;
case '"':
strTxt.append(""");
break;
case 10:
strTxt.append("<br>");
break;
case ' ':
strTxt.append(" ");
break;
default:
strTxt.append(chrBuff);
}
}
strNew = strTxt.toString();
return strNew;
}
/** [14]
* ๋ฌธ์์ด์ ์ง์ ํ ๋ถ๋ฆฌ์๋ก ๋ถ๋ฆฌํ์ฌ ๋ฐฐ์ด๋ก ๋ฆฌํดํ๋ ๋ฉ์๋
*
* @param source ์๋ณธ ๋ฌธ์์ด
* @param separator ๋ถ๋ฆฌ์
* @return ๋ถ๋ฆฌ์๋ก ๋๋์ด์ง ๋ฌธ์์ด ๋ฐฐ์ด
* **/
public static String[] split(String source, String separator) throws NullPointerException {
String[] returnVal = null;
int cnt = 1;
int index = source.indexOf(separator);
int index0 = 0;
while (index >= 0) {
cnt++;
index = source.indexOf(separator, index + 1);
}
returnVal = new String[cnt];
cnt = 0;
index = source.indexOf(separator);
while (index >= 0) {
returnVal[cnt] = source.substring(index0, index);
index0 = index + 1;
index = source.indexOf(separator, index + 1);
cnt++;
}
returnVal[cnt] = source.substring(index0);
return returnVal;
}
/** [15]
* {@link String#toLowerCase()}๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฌธ์ ๋ณํ
*
* @param str ์๋ฌธ์๋ก ๋ณํ์ํฌ ๋ฌธ์์ด
* @return ์๋ฌธ์๋ก ๋ณํ๋ ๋ฌธ์์ด. null ์
๋ ฅ์ null ๋ฆฌํด
* **/
public static String lowerCase(String str) {
if (str == null) {
return null;
}
return str.toLowerCase();
}
/** [16]
* {@link String#toUpperCase()}๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฌธ์ ๋ณํ
*
* @param str ๋๋ฌธ์๋ก ๋ณํ์ํฌ ๋ฌธ์์ด
* @return ๋๋ฌธ์๋ก ๋ณํ๋ ๋ฌธ์์ด. null ์
๋ ฅ์ null ๋ฆฌํด
* **/
public static String upperCase(String str) {
if (str == null) {
return null;
}
return str.toUpperCase();
}
/** [17]
* ์
๋ ฅ๋ string์ ์ ์ชฝ์์ ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ๋ ๋ฉ์๋
*
* in case)
* StringUtil.stripStart("abcd ","cat") = "bd "
*
* @param str ๊ธฐ์ค ๋ฌธ์์ด
* @param stripChars ์ ๊ฑฐ ๋์ ๋ฌธ์์ด
* @return ์ง์ ๋ ๋ฌธ์๊ฐ ์ ๊ฑฐ๋ ๊ธฐ์ค ๋ฌธ์์ด. null ์
๋ ฅ ์ null ๋ฆฌํด
* **/
public static String stripStart(String str, String stripChars) {
int strLen;
if (str == null || (strLen = str.length()) == 0)
{
return str;
}
int start = 0;
if (stripChars == null) {
while ((start != strLen) && Character.isWhitespace(str.charAt(start)))
{
start++;
}
}
else if (stripChars.length() == 0) {
return str;
}
else {
while ((start != strLen) && (stripChars.indexOf(str.charAt(start)) != -1))
{
start++;
}
}
return str.substring(start);
}
/** [18]
* ์
๋ ฅ๋ string์ ๋ท ์ชฝ์์ ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ๋ ๋ฉ์๋
*
* in case)
* StringUtil.stripStart(" abcd","cat") = " bd"
*
* @param str ๊ธฐ์ค ๋ฌธ์์ด
* @param stripChars ์ ๊ฑฐ ๋์ ๋ฌธ์์ด
* @return ์ง์ ๋ ๋ฌธ์๊ฐ ์ ๊ฑฐ๋ ๊ธฐ์ค ๋ฌธ์์ด. null ์
๋ ฅ ์ null ๋ฆฌํด
* **/
public static String stripEnd(String str, String stripChars) {
int end;
if (str == null || (end = str.length()) == 0) {
return str;
}
if (stripChars == null) {
while ((end != 0) && Character.isWhitespace(str.charAt(end - 1))) {
end--;
}
} else if (stripChars.length() == 0) {
return str;
} else {
while ((end != 0) && (stripChars.indexOf(str.charAt(end - 1)) != -1)) {
end--;
}
}
return str.substring(0, end);
}
/** [19]
* ์
๋ ฅ๋ string์ ์ ๋ฐฉํฅ์์ ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ๋ ๋ฉ์๋
*
* @param str ๊ธฐ์ค ๋ฌธ์์ด
* @param stripChars ์ ๊ฑฐ ๋์ ๋ฌธ์์ด
* @return ์ง์ ๋ ๋ฌธ์๊ฐ ์ ๊ฑฐ๋ ๊ธฐ์ค ๋ฌธ์์ด. null ์
๋ ฅ ์ null ๋ฆฌํด
* **/
public static String strip(String str, String stripChars) {
if (isEmpty(str)) {
return str;
}
String srcStr = str;
srcStr = stripStart(srcStr, stripChars);
return stripEnd(srcStr, stripChars);
}
/** [20]
* ๋ฌธ์์ด A~Z ์ฌ์ด์ ๋๋ค ๋ฌธ์์ด์ ๊ตฌํ๋ ๊ธฐ๋ฅ
* (์์ ๋ฌธ์์ด, ์ข
๋ฃ ๋ฌธ์์ด ์ง์ ๊ฐ๋ฅ)
*
* @param startChr ์ฒซ ๋ฌธ์
* @param endChr ๋ง์ง๋ง ๋ฌธ์
* @exception
* @return ์ฒซ ๋ฌธ์์ ๋ง์ง๋ง ๋ฌธ์ ์ฌ์ด์ ๋๋ค ๋ฌธ์
* **/
public static String getRandomStr(char startChr, char endChr) {
int randomInt;
String randomStr = null;
// ์์ ๋ฌธ์ ์ ์ข
๋ฃ ๋ฌธ์ ์์คํค์ซ์๋ก ๋ณํ
int startInt = Integer.valueOf(startChr);
int endInt = Integer.valueOf(endChr);
// ์์ ๋ฌธ์๊ฐ ์ข
๋ฃ ๋ฌธ์๋ณด๋ค ํด ๊ฒฝ์ฐ exception ๋ฐ์
if (startInt > endInt) {
throw new IllegalArgumentException("Start String: " + startChr + " End String: " + endChr);
}
// ๋๋ค ๊ฐ์ฒด ์์ฑ
SecureRandom rnd = new SecureRandom();
do {
// ์์ ๋ฌธ์ ์ ์ข
๋ฃ๋ฌธ์ ์ฌ์ด์์ ๋๋ค ์ซ์ ๋ฐ์
randomInt = rnd.nextInt(endInt + 1);
} while (randomInt < startInt);
// ์
๋ ฅ ๋ฐ์ ๋ฌธ์ 'A'(65)๋ณด๋ค ์์ผ๋ฉด ๋ค์ ๋๋ค ์ซ์ ๋ฐ์.
// ๋๋ค ์ซ์๋ฅผ ๋ฌธ์๋ก ๋ณํ ํ String ์ผ๋ก ์ฌ๋ณํ
randomStr = (char) randomInt + "";
return randomStr;
}
/** [21]
* ๋ ์ง ํ์ ๋ฌธ์์ด ๋ด๋ถ์ ๋ง์ด๋์ค char(-) ์ถ๊ฐ
*
* in case)
* StringUtil.addMinusChar("20231227") = "2023-12-27"
*
* @param date ์
๋ ฅ ๋ฌธ์์ด
* @return "-"๊ฐ ์ถ๊ฐ๋ ์
๋ ฅ ๋ฌธ์์ด
* **/
public static String addMinusChar(String date) {
if (date.length() == 8)
return date.substring(0, 4).concat("-").concat(date.substring(4, 6)).concat("-").concat(date.substring(6, 8));
else
return "";
}
/** [22]
* ์์ฉ ์ดํ๋ฆฌ์ผ์ด์
์์ ๊ณ ์ ๊ฐ ์ฌ์ฉํ๊ธฐ ์ํด
* ์์คํ
์์ 17์๋ฆฌ์ timestamp ๊ฐ ๊ตฌํ๋ ๋ฉ์๋
*
* @return timestamp ๊ฐ
* @exception
* **/
public static String getTimeStamp() {
String rtnStr = null;
// ๋ฌธ์์ด๋ก ๋ณํํ๊ธฐ ์ํ ํจํด ์ค์ (๋
๋-์-์ผ ์:๋ถ:์ด:์ด(์์ ์ดํ ์ด))
String pattern = "yyyyMMddhhmmssSSS";
SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern, Locale.KOREA);
Timestamp ts = new Timestamp(System.currentTimeMillis());
rtnStr = sdfCurrent.format(ts.getTime());
return rtnStr;
}
}
๋ ธ๊ฐ๋ค String Util ๋ชจ์์ง... ๊บผ๋ด์ฐ์๋ฉด ๋ฉ๋๋ค...
์ ์ ๊ฑด๊ฐ์ ๋์์ด ๋๊ธธ ๋ฐ๋ผ๋ฉฐ...
ํ๋ณตํ์ธ์ ^^...
728x90