2015.09.15 16:22

간단하게 Random String 만들기

출처 : http://theeye.pe.kr/archives/1321

많은 주옥같은 함수들이 있긴 했는데 이게 제일 간편했음 ㅎㅎㅎ


-------------------------------------------------------------------------------------------------------------------------

간단하게 랜덤한 문자열을 생성해야 할때 사용할 수 있는 문자열 생성 함수 있습니다.
/**
 * 랜덤한 문자열을 원하는 길이만큼 반환합니다.
 * 
 * @param length 문자열 길이
 * @return 랜덤문자열
 */
private static String getRandomString(int length)
{
  StringBuffer buffer = new StringBuffer();
  Random random = new Random();
 
  String chars[] = 
    “a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z”.split(“,”);
 
  for (int i=0 ; i<length ; i++)
  {
    buffer.append(chars[random.nextInt(chars.length)]);
  }
  return buffer.toString();
}

신고
Trackback 0 Comment 0
2012.01.03 12:06

java 한글을 2byte로 취급하여 substring 하는 함수

// java에선 한글도 1글자, 영문이나 다른 글자도 1글자로 취급되어 substring 된다.
// 이게 통신같은데선 문제가 될 수가 있어서 한글은 2byte, 그 외는 1byte 로 취급하는 함수가 필요
// 안드로이드에서 쓸거였는데, 이상하게 인터넷에서 찾은건 정상 동작을 하지 않아서
// 자력갱생으로 만듬;; 뭐 오류가 좀 있는거 같은데 괜찮을거임 ( -_-);;;
// 참고로 한글을 UTF-8로 취급하면 getbyte시에 한글이 3byte, 기타는 1byte로 먹고
// euc-kr로 하면 한글이 2byte 나머지는 1byte를 차지한다


         private String subString(String strData, int iStartPos, int iByteLength) {
byte[] bytTemp = null;
int iRealStart = 0;
int iRealEnd = 0;
int iLength = 0;
int iChar = 0;
try {
// UTF-8로 변환하는경우 한글 2Byte, 기타 1Byte로 떨어짐
bytTemp = strData.getBytes("EUC-KR");
iLength = bytTemp.length;

for(int iIndex = 0; iIndex < iLength; iIndex++) {
if(iStartPos <= iIndex) {
break;
}
iChar = (int)bytTemp[iIndex];
if((iChar > 127)|| (iChar < 0)) {
// 한글의 경우(2byte 통과처리)
// 한글은 2Byte이기 때문에 다음 글자는 볼것도 없이 스킵한다
iRealStart++;
iIndex++;
} else {
// 기타 글씨(1Byte 통과처리)
iRealStart++;
}
}
iRealEnd = iRealStart;
int iEndLength = iRealStart + iByteLength;
for(int iIndex = iRealStart; iIndex < iEndLength; iIndex++)
{
iChar = (int)bytTemp[iIndex];
if((iChar > 127)|| (iChar < 0)) {
// 한글의 경우(2byte 통과처리)
// 한글은 2Byte이기 때문에 다음 글자는 볼것도 없이 스킵한다
iRealEnd++;
iIndex++;
} else {
// 기타 글씨(1Byte 통과처리)
iRealEnd++;
}
}
} catch(Exception e) {
//
Log.d("DEBUG",e.getMessage());
}

return strData.substring(iRealStart, iRealEnd);
}
신고
Trackback 0 Comment 0


티스토리 툴바