Добавить лидирующие нули к числу в Java? [Дубликат]

Мое решение очень похоже на Tims, но также работает в случае листов без листа - диаграммы

Public Function SheetExists(strSheetName As String, Optional wbWorkbook As Workbook) As Boolean
    If wbWorkbook Is Nothing Then Set wbWorkbook = ActiveWorkbook 'or ThisWorkbook - whichever appropriate
    Dim obj As Object
    On Error GoTo HandleError
    Set obj = wbWorkbook.Sheets(strSheetName)
    SheetExists = True
    Exit Function
HandleError:
    SheetExists = False
End Function

.

444
задан Nate Parsons 1 April 2012 в 15:59
поделиться

3 ответа

String.format ( http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax )

В Вашем случае это будет:

String formatted = String.format("%03d", num);
  • 0 - для заполнения нулями
  • 3 - для установки ширины на 3
1252
ответ дан Bojan Kseneman 1 April 2012 в 15:59
поделиться

Начиная с Java 1.5 можно использовать String.format метод. Например, чтобы сделать то же самое как Ваш пример:

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

В этом случае, Вы создаете строку формата с помощью ширины, указанной в цифрах, затем применяя его непосредственно к числу. Формат для этого примера преобразовывается следующим образом:

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

Поэтому, если цифры равно 5, строка формата становится %05d, который указывает, что целое число с шириной 5 продвижения печати обнуляет. Посмотрите документы Java для String.format для получения дополнительной информации о спецификаторах преобразования.

90
ответ дан Bojan Kseneman 1 April 2012 в 15:59
поделиться
  • 1
    Я просто скопировал и вставил этот точный код в НЕАКТИВНОМ; я получаю ошибку. –  26 July 2011 в 10:43

Другая опция состоит в том, чтобы использовать DecimalFormat для форматирования числовой Строки. Вот еще один способ сделать задание, не имея необходимость использовать String.format, если Вы застреваете в пред 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);
}
35
ответ дан Bojan Kseneman 1 April 2012 в 15:59
поделиться
  • 1
    Можно ли обеспечить вывод dir(set) и print set? – Susam Pal 26 July 2011 в 10:46
Другие вопросы по тегам:

Похожие вопросы: