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

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static String toWritten(int i) {
            return Integer.parseInt(String.valueOf(i).substring(String.valueOf(i).length()-1)) > 4 ?
                "объектов" :
                Integer.parseInt(String.valueOf(i).substring(String.valueOf(i).length()-1)) > 1 ?
                    "объекта" :
                    Integer.parseInt(String.valueOf(i).substring(String.valueOf(i).length()-1)) == 1 ?
                        "объект":
                        "объектов";
        }

    функция для вывода подобного:
    1 объект
    156 оъектов
    итд.

    Запостил: danilissimus, 27 Ноября 2010

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

    • P.S.: перевод строк добавлен для читабельности. представте себе как это выглядит без корректировки.
      Ответить
    • 13 объекта, однако
      Ответить
    • Ох, лол, toWritten - Прописью
      Ответить
    • НЕНАВИСТЬ!!!
      Ответить
    • Такого маразма я ещё не видел. Неужели так сложно работать с самим числом? К тому же, для второго десятка этот код будет косячить. На самом деле правила такие:
      public static String pluralForm(int i, String word) {
          if (10 <= i && i <= 20) return word + "ов";
          int d = i % 10;
          if (d == 1) return word;
          if (2 <= d && d <=4) return word + "а";
          return word + "ов";
      }
      А вообще для подобных вещей есть ChoiceFormat, но быдлокодеры о нём не слышали.
      Ответить

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