itsource

Java에서 숫자에 선행 0을 추가하시겠습니까?

mycopycode 2022. 9. 19. 23:39
반응형

Java에서 숫자에 선행 0을 추가하시겠습니까?

이 결과를 얻을 수 있는 더 좋은 방법이 있을까요?이 함수는 num이 숫자보다 많은 숫자를 가지고 있으며, 라이브러리 어딘가에 있어야 한다고 생각되면 실패합니다(Integer.toString(x,%3d)" 등).

static String intToString(int num, int digits) {
    StringBuffer s = new StringBuffer(digits);
    int zeroes = digits - (int) (Math.log(num) / Math.log(10)) - 1; 
    for (int i = 0; i < zeroes; i++) {
        s.append(0);
    }
    return s.append(num).toString();
}

String.format(https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax)

고객님의 경우 다음과 같습니다.

String formatted = String.format("%03d", num);
  • 0 - 0으로 채웁니다.
  • 3 - 너비를 3으로 설정합니다.

Java 1.5에서는String.format방법.예를 들어, 예시와 같은 작업을 수행하려면 다음과 같이 하십시오.

String format = String.format("%0%d", digits);
String result = String.format(format, num);
return result;

이 경우 숫자로 지정된 너비를 사용하여 형식 문자열을 만든 다음 숫자에 직접 적용합니다.이 예의 형식은 다음과 같이 변환됩니다.

%% --> %
0  --> 0
%d --> <value of digits>
d  --> d

따라서 숫자가 5일 경우 형식 문자열은%05d인쇄 폭 5가 0으로 이어지는 정수를 지정합니다.자세한 내용은 Java 문서를 참조하십시오.String.format변환 지정자에 대한 자세한 내용은 를 참조하십시오.

다른 옵션은 DecimalFormat을 사용하여 숫자 문자열 형식을 지정하는 것입니다.다음은 String을 사용하지 않고 작업을 수행할 수 있는 다른 방법입니다.1.5 이전 버전의 세계에 갇힌 경우 포맷:

static String intToString(int num, int digits) {
    assert digits > 0 : "Invalid number of digits";

    // create variable length array of zeros
    char[] zeros = new char[digits];
    Arrays.fill(zeros, '0');
    // format number as String
    DecimalFormat df = new DecimalFormat(String.valueOf(zeros));

    return df.format(num);
}

그럼 뭐?

public static String intToString(int num, int digits) {
    String output = Integer.toString(num);
    while (output.length() < digits) output = "0" + output;
    return output;
}

jdk 버전이 1.5 미만인 경우 다음 옵션을 사용할 수 있습니다.

    int iTest = 2;
    StringBuffer sTest = new StringBuffer("000000"); //if the string size is 6
    sTest.append(String.valueOf(iTest));
    System.out.println(sTest.substring(sTest.length()-6, sTest.length()));

언급URL : https://stackoverflow.com/questions/275711/add-leading-zeroes-to-number-in-java

반응형