Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Добавить недостающие символы в начало строки  [new]
Molasar
Member

Откуда:
Сообщений: 567
Всем привет!

Есть код, добавляющий '0' в начало строки, чтобы длина строки в итоге была 16 символов:
while (steps.length() < 16) {
      steps = "0" + steps;
}

В данном случае мы забиваем память ненужными строками.

Лучше использовать StringBuilder или есть более лаконичные варианты?
19 фев 19, 16:30    [21814506]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15272
Molasar,

тебе это для чего надо?
19 фев 19, 16:32    [21814509]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
Molasar
Member

Откуда:
Сообщений: 567
Есть такая эталонная библиотека, реализующая Time-Based One-Time Password Algorithm.
А в ней соответствующий код.
Хочу привести код к нормальному виду.
вадя
Molasar,

тебе это для чего надо?
19 фев 19, 16:40    [21814526]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
mayton
Member

Откуда: loopback
Сообщений: 39264
Посмотрие leftPad https://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/StringUtils.html
19 фев 19, 16:57    [21814565]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
by-pass
Member

Откуда: Зеленоград (Москва)
Сообщений: 540
Molasar,

str=("0000000000000000"+str).substring(str.length());

не?
19 фев 19, 17:22    [21814604]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
Лысый дядька
Member

Откуда:
Сообщений: 330
То ли чего-то не понимаю, но ведь во всех нормальных языках это делается примерно одинаково, безо всяких библиотек и танцев с бубном

String.format("%020d", 93); // prints: 00000000000000000093
19 фев 19, 18:14    [21814684]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
mayton
Member

Откуда: loopback
Сообщений: 39264
Лысый дядька, на тестах с JMH скорее всего padding будет работать быстрее чем printf.
19 фев 19, 18:32    [21814714]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
Лысый дядька
Member

Откуда:
Сообщений: 330
mayton
Лысый дядька, на тестах с JMH скорее всего padding будет работать быстрее чем printf.

Не могу спорить. Надо сравнивать внатуре. Заодно и код топикстартера отперфомансить )
19 фев 19, 18:36    [21814721]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15272
Лысый дядька
mayton
Лысый дядька, на тестах с JMH скорее всего padding будет работать быстрее чем printf.

Не могу спорить. Надо сравнивать внатуре. Заодно и код топикстартера отперфомансить )
это вообще как часто должно происходить? чтоб этих блох ловить?
19 фев 19, 18:51    [21814741]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7443
Если вместо + явно использовать StringBuffer / StringBuilder явно блок ловить будет не нужно

IMHO & AFAIK
19 фев 19, 19:14    [21814763]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7443
Ну то есть StringBuilder так как потоко безопасность явно пофиг
19 фев 19, 19:15    [21814769]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
mayton
Member

Откуда: loopback
Сообщений: 39264
Смотрите исходники StringUtils. Там - коробочное решение этой задачи без StringBuilder.
19 фев 19, 19:26    [21814780]     Ответить | Цитировать Сообщить модератору
 Re: Добавить недостающие символы в начало строки  [new]
Molasar
Member

Откуда:
Сообщений: 567
Да, оно самое))

by-pass
Molasar,

str=("0000000000000000"+str).substring(str.length());

не?
20 фев 19, 11:16    [21815214]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить