Java

개발시 유용한 문자열(STRING) 처리 함수 2탄

 

자바에서 byte size를 가져오는 방법

	public static int getByteSize(String str)
	{
		if(str.isEmpty()) return 0;
		
		byte[] byteArray = null;
		try
		{
			byteArray = str.getBytes("UTF-8");
		}
		catch(UnsupportedEncodingException ex)
		{
			
		}
		if(byteArray == null) return 0;
		return byteArray.length;
	}

 

자바 긴 문자열 자르는 방법

 /*
 * @param srcString 대상문자열
 * @param nLength 길이
 * @param isNoTag 태그 제거 여부
 * @param isAddDot "..."을추가 여부  
*/
public static String strCut(String srcString, int nLength, boolean isNoTag, boolean isAddDot)
{
	String rtnVal = srcString;
	int oL = 0, rF = 0, rL = 0; //oF = 0
	//int nLengthPrev = 0;
	// 태그 제거
	if(isNoTag)
	{
		Pattern p = Pattern.compile("<(/?)([^<>]*)?>", Pattern.CASE_INSENSITIVE); // 태그제거
		rtnVal = p.matcher(rtnVal).replaceAll(""); // 패턴
	}
	rtnVal = rtnVal.replaceAll("&amp;", "&");
	rtnVal = rtnVal.replaceAll("(!/|r|n|&nbsp;)", ""); // 공백제거
	
	try
	{
		byte[] bytes = rtnVal.getBytes("UTF-8"); // 바이트로 보관
		// x부터 y길이만큼 잘라낸다. 한글안깨지게.
		int j = 0;
		
		j = rF;
		
		while (j < bytes.length)
		{
			if((bytes[j] & 0x80) != 0)
			{
				if(oL + 2 > nLength)
				{
					break;
				}
				oL += 2;
				rL += 3;
				j += 3;
			}
			else
			{
				if(oL + 1 > nLength)
				{
					break;
				}
				++oL;
				++rL;
				++j;
			}
		}
		rtnVal = new String(bytes, rF, rL, "UTF-8"); // charset 옵션
		
		if(isAddDot && rF + rL + 3 <= bytes.length)
		{
			rtnVal += "...";
		} // ...을 붙일지말지 옵션
	}
	catch(UnsupportedEncodingException e)
	{
		log.info(e.toString());
		log.info(e.getMessage());
		return srcString;
	}
	return rtnVal;
}

 

자바 문자열 NULL 체크 하는 방법 함수 모음

public static boolean isNull(String str)
{
	return (str == null || (str.trim().length()) == 0);
}

public static boolean isNull(Object obj)
{
	String str = null;
	if(obj instanceof String)	str = (String) obj;
	else						return true;
	return isNull(str);
}


// null이 아닐때. 	 
public static boolean isNotNull(String str)
{
	if(isNull(str))	return false;
	else			return true;
}


//널체크	 
public static boolean isNotNull(Object obj)
{
	String str = null;
	if(obj instanceof String)	str = (String) obj;
	else						return false;
	return isNotNull(str);
}


//파라미터가 null 이거나 공백이 있을경우 "" 로 return	 	 
public static String replaceNull(String value)
{
	return replaceNull(value, "");
}


//Object를 받아서 String 형이 아니거나 NULL이면 ""를 return String 형이면 형 변환해서 넘겨준다. 	 
public static String replaceNull(Object value)
{
	Object rtnValue = value;
	String strClassName = rtnValue.getClass().getName();
	if(!strClassName.equals("java.lang.String"))
	{
		rtnValue = "";
	}
	return replaceNull((String) rtnValue, "");
}


//파라미터로 넘어온 값이 null 이거나 공백이 포함된 문자라면 defaultValue를 return 아니면 값을 trim해서 넘겨준다.
public static String replaceNull(String value, String defaultValue)
{
	if(isNull(value))
	{
		return defaultValue;
	}
	return value.trim();
}


//Object를 받아서 String 형이 아니거나 NULL이면 defaultValue를 return String 형이면 형 변환해서 넘겨준다.
public static String replaceNull(Object value, String defaultValue)
{
	String valueStr = replaceNull(value);
	if(isNull(valueStr))
	{
		return defaultValue;
	}
	return valueStr.trim();
}

//Object를 int형으로 defaultValue는 0이다.
public static int parseInt(Object value)
{
	String valueStr = replaceNull(value);
	return parseInt(valueStr, 0);
}

public static int parseInt(String value)
{
	return parseInt(value, 0);
}	 
  

//Object를 int형으로 Object가 null이면 defaultValue return	 
public static int parseInt(Object value, int defaultValue)
{
	String valueStr = replaceNull(value);
	return parseInt(valueStr, defaultValue);
}


//String을 int형으로 String이 숫자 형식이 아니면 defaultValue return
public static int parseInt(String value, int defaultValue)
{
	int returnValue = 0;
	if(isNull(value))
	{
		returnValue = defaultValue;
	}
	else if(!isNumeric(value))
	{
		returnValue = defaultValue;
	}
	else
	{
		returnValue = Integer.parseInt(value);
	}
	return returnValue;
}


// String을 int형으로 String이 숫자 형식이 아니면 defaultValue return
public static String parseIntToString(String value)
{
	return String.valueOf((parseInt(value, 0)));
}



//String을 long형으로 defaultValue는 0이다.
public static long parseLong(String value)
{
	return parseLong(value, 0);
}


//String을 long형으로 잘못된 데이타 일시 return은 defaultValue
public static long parseLong(String value, long defaultValue)
{
	long returnValue = 0;
	if(isNull(value))
	{
		returnValue = defaultValue;
	}
	else if(!isNumeric(value))
	{
		returnValue = defaultValue;
	}
	else
	{
		returnValue = Long.parseLong(value);
	}
	return returnValue;
}

 

//String 배열을 List로 변환한다. 
@SuppressWarnings({ "unchecked", "rawtypes" })
public static List changeList(String[] values)
{
	List list = new ArrayList();
	if(values == null)
	{
		return list;
	}
	
	for(int i = 0, n = values.length; i < n; i++)
	{
		list.add(values[i]);
	}
	return list;
}

public static String[] toTokenArray(String str, String sep)
{
	String[] temp = null;
	try
	{
		StringTokenizer st = new StringTokenizer(str, sep);
		temp = new String[st.countTokens()];
		int index = 0;
		while(st.hasMoreTokens())
		{
			temp[index++] = st.nextToken();
		}
	}
	catch (Exception e)
	{
		log.info(e.toString());
		log.info(e.getMessage());
	}
	return temp;
}

public static String strip(String str, String str1)
{
	if(str == null || "".equals(str.trim())) return "";
	
	String temp = str;
	int pos = -1;
	while((pos = temp.indexOf(str1, pos)) != -1)
	{
		String left = temp.substring(0, pos);
		String right = temp.substring(pos + 1, temp.length());
		temp = left + "" + right;
		pos += 1;
	}
	return temp;
}


//Object를 받아서 null이면 ""리턴 그렇지않으면 String형 변환해서 넘겨준다. 
 
public static String replaceString(Object value)
{
	if(isNull(value)) return "";
	
	Object rtnValue = value;
	return replaceNull((String) rtnValue, "");
}




//string에 있는 ', ", rn 를 HTML 코드로 변환한다.
public static String changeQuotation(String str)
{
	String rtnValue = str;
	rtnValue = replaceNull(rtnValue);
	rtnValue = replace(replace(replace(rtnValue, "'", "&#39;"), """, "&#34;"), "rn", "<br>");
	return rtnValue;
}

public static String changeQuotation(Object obj)
{
	if(isStringInteger(obj))
	{
		return changeQuotation(String.valueOf(obj));
	}
	return "";
}


//해당 Object가 String or Integer 이면 true 아니면 false	 
public static boolean isStringInteger(Object obj)
{
	boolean flag = false;
	if(obj instanceof String || obj instanceof Integer)
	{
		flag = true;
	}
	return flag;
}

 

Html 코드에서 &#60;br&#62; 태크 제거

public static String convertHtmlBr(String comment)
{
	String rtnValue = "";
	if(isNull(comment))
	{
		return "";
	}
	rtnValue = replace(comment, "rn", "<br>");
	return rtnValue;
}

 

위에서 정의한 메소드(함수)들이 사용하는 IMPORT 라이브러리 정보이니 참고하세요.

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

 

 

개발시 유용한 문자열(STRING) 처리 함수 1탄

파라미터로 넘어오는 String을 , 를 제거하는 방법 public static String removeComma(String str) { String rtnValue = str; if(isNull(str)) { return “”; } rtnValue = replace(rtnValue, “,”, “”); return rtn..

playground.naragara.com

 

Leave a Reply

error: Content is protected !!