Преобразование числа в строку Java

char * utoa_builtin_div(uint32_t value, char *buffer)
{
   buffer += 11; 
// 11 байт достаточно для десятичного представления 32-х байтного числа
// и  завершающего нуля
   *--buffer = 0;
   do
   {
      *--buffer = value % 10 + '0';
      value /= 10;
   }
   while (value != 0);
   return buffer;
}

Прошерстил сайты и не особо понял, как этот алгоритм реализовать вручную на java. Вот нашел более менее простой способ через деление на 10.Но он не для java. Тут используются побитовые сдвиги. Как мне его написать на java?


Ответы (1 шт):

Автор решения: Sergey

Как-то так:

String i2a(int value) {
    StringBuilder sb = new StringBuilder();
    do {
        int lastDigit = value % 10;
        sb.insert(0, lastDigit);
        value = value / 10;
    } while (value != 0);
    return sb.toString();
}

В java есть специальный тип для строк.
И удобные вспомогательные средства для работы с этими строками.
Одно из них StringBuilder
Извлекаем очередную цифру и вставляем в начало будущей строки.

→ Ссылка