저도 수 앞이나 뒤로 공백을 넣어 정렬하는 기능을 찾아 보았지만
(C의 런타임 함수 중에 있는 printf와 비슷하게 쓰려는 목적으로 찾았지요)
API 문서에는 수 자체의 형식화를 위한 설명만 나와있더군요 ^^;
수의 앞이나 뒤에 공백이나 기타 기호를 넣어서 형식화 하는것은 수 자체에 대한
형식화가 아니기 때문에 DecimalFormat 클래스에서는 지원하지 않습니다.
이것을 보완하려면 어쩔 수 없이 별도의 메소드를 만들어서 써야 하지요.
아래의 코드가 참고가 될것 같군요 ^^;
테스트 해보시고 적당히 변형하여 사용하시면 될겁니다.
public class test {
private static final char[] m_sharedArr = new char[128];
private static String format0(String s, int size) {
int len = s.length();
int absSize = (size > 0) ? size : -size;
if (len < absSize) {
String sp = null;
synchronized (m_sharedArr) {
int l = absSize - len;
for (int i=0; i < l; i++)
m_sharedArr[i] = ' ';
sp = new String(m_sharedArr, 0, l);
}
if (size > 0)
s = sp + s;
else
s = s + sp;
}
return s;
}
public static String format(long n, int size) {
return format0(String.valueOf(n), size);
}
public static String format(double n, int size) {
return format0(String.valueOf(n), size);
}
public static String format(Number n, int size) {
return format0(String.valueOf(n), size);
}
public static void main(String[] args) {
System.out.println("[" + format(20, 10) + "]");
System.out.println("[" + format(20.332, 10) + "]");
System.out.println("[" + format(20, -10) + "]");
System.out.println("[" + format(20.332, -10) + "]");
}
}
혹시 JDK 1.5를 사용하고 계신다면 java.util.Formatter 클래스에 있는 format 메소드와 java.io.PrintStream 클래스의 printf 메소드를 참고 해보세요.
'JAVA > 소스코드' 카테고리의 다른 글
[Java] 간단한 숫자체크 (0) | 2014.10.23 |
---|---|
숫자를 한글로 표현 소스코드 질답 (0) | 2014.09.16 |
자바로 아라비아 숫자를 단위 변경하는 프로그램 (0) | 2014.09.16 |
[JAVA] 화폐단위 숫자형을 문자형으로 변환 (0) | 2014.09.16 |
[Java] 기초알고리즘 - 12. 반올림(ROUND) 함수 만들기 (0) | 2014.09.16 |
스트링버퍼에 있는 /r/n을 태그<br>로 바꾸고 싶은데 잘 모르겠습니다. (0) | 2014.09.16 |
JAVA if else 문을 switch 문으로 (0) | 2014.08.26 |
Calendar + math(하나빼기) 과제 (0) | 2014.06.24 |