1. Java / Говнокод #4962

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private String get4DigitRandom() {
            final int length = 4;
            int number = (int) (Math.random() * Math.pow(10, length));
            StringBuilder sb = new StringBuilder();
            for (int i = length; i > 0; i--)
                sb.append("" + (int) (number / Math.pow(10, i - 1)) % 10);
    
            return sb.toString();
        }

    Запостил: yozh, 17 Декабря 2010

    Комментарии (6) RSS

    • Очаровательно. Я б так не придумал...
      return ((int)(Math.random * 10000)).toString();
      Ответить
      • Целое число следует предварительно обернуть в класс Integer, чтобы можно было вызвать toString -- это Раз.
        Данный код возвращает трёхзначные, двузначные и цифры без ведущих нулей -- это Два.
        Код Yozh`а, на самом деле, универсален относительно числа знаков (хотя это и неожиданно при интуитивном-по-названию контракте "весегда" четыре) -- это Три.
        Ответить
        • > Целое число следует предварительно обернуть в класс Integer
          Хм... Почему-то думал, что Java это сделает автоматически, как C#.
          С остальным да, бида :)
          Ответить
    • и при этом мы знаем про StringBuilder
      Ответить
    • показать все, что скрытоКони, блять в яблоках
      Ответить
    • Как вариант:

      return new DecimalFormat("0000").format(Math.random ()*10000);

      , но в более строгих случаях лучше проинициилизировать для этого отдельно генератор.
      Ответить

    Добавить комментарий