[Java] LPAD / RPAD 구현하기

Study/Java 2019. 6. 4. 22:09 Posted by meanoflife
반응형

LPAD : Left Pad  // 왼쪽에 덧 대는것, 메워 넣는 것

 

특정 길이만큼 문자열을 왼쪽에 채워 넣는 기능입니다.

SQL에서는 기본함수로 제공되고 있으며, 고정자리의 값을 처리할 때 사용됩니다.

 

프로젝트를 진행하다보면, 고정길이 전문( I/F, Interface )를 처리할 때 많이 사용됩니다.

	public static void main(String[] args) {
		
		String strContext = "ABCDE";
		
		String strLPad = setLPad( strContext, 10, "*" );  // "*"문자로 10자리만큼 LPadding처리한다.
		
		System.out.println( strContext + " LPAD : [" + strLPad + "]" );
	}
	
	// LPAD
	private static String setLPad( String strContext, int iLen, String strChar ) {
		
		String strResult = "";
		
		StringBuilder sbAddChar = new StringBuilder();
		for( int i = strContext.length(); i < iLen; i++ ) {  // iLen길이 만큼 strChar문자로 채운다.
			
			sbAddChar.append( strChar ); 
		}
		
		strResult = sbAddChar + strContext;  // LPAD이므로, 채울문자열 + 원래문자열로 Concate한다.
		
		return strResult;
	}

"ABCDE"라는 문자열을 10자리로 채워서 표현하려고 합니다.

빈 공간에 채워질 문자는 "*"이며, 10자리가 다 찰때까지 "*"문자로 추가합니다.

 

sbAddChar이라는 StringBuilder변수에 채워질 빈 공간의 길이만큼 "*"문자열을 만듭니다.

그리고, 다음과 같이 문자열을 조립하고, 결과를 Return합니다.

strResult = sbAddChar + strContext;  // LPAD이므로, 채울문자열 + 원래문자열로 Concate한다.

결과

ABCDE LPAD : [*****ABCDE]

위와 같이 "ABCDE"라는 원래 문자에 "*****"문자열이 왼쪽에 채워졌습니다.

Main함수에서 "setLPad()"메소드를 호출시 인자값으로 "10자리", "*" 문자로 주었기 때문입니다.

 

LPAD와 반대 개념으로 RPAD가 있습니다.

특정 길이만큼 우측에 문자열을 채우는 기능입니다.

동일한 로직으로 구현되며, 문자열 조립시에 "기본문자열 + 추가문자열"로 하면 됩니다.

strResult = strContext + sbAddChar;

ABCDE RPAD 결과 : [ABCDE*****]

 

반응형