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

    +81

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    /*
     * Copyright 2009 Sun Microsystems, Inc.
     * All rights reserved.  You may not modify, use,
     * reproduce, or distribute this software except in
     * compliance with  the terms of the License at:
     * http://developer.sun.com/berkeley_license.html
     */
    
    
    package cart.util;
    
    public class IdVerifier {
        public IdVerifier() {
        }
    
        public boolean validate(String id) {
            boolean result = true;
    
            for (int i = 0; i < id.length(); i++) {
                if (Character.isDigit(id.charAt(i)) == false) {
                    result = false;
                }
            }
    
            return result;
        }
    }

    Java EE tutorial

    Запостил: ingenuus, 27 Сентября 2011

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

    • >> tutorial
      Нуф сказал
      Ответить
    • бряка не хватает в 21 строчке
      Ответить
      • Проще было бы так:

        public boolean validate(String id) {
                for (int i = 0; i < id.length(); i++) {
                    if (Character.isDigit(id.charAt(i))) {
                        return false;
                    }
                }
                return true;
            }


        А еще лучше не использовать String для переменных которые должны быть числовыми.
        Ответить
        • Забыл поставить ! перед Character.isDigit(id.charAt(i))
          Ответить
        • С return'ом согласен.
          А на счет стринга - зависит от источника данных, потому что иначе не было бы и функций для преобразования строки в число.
          Ответить
          • Вот если бы правильный тип использовали, то и проверка не нужна бы была.
            Ответить
        • > А еще лучше не использовать String для переменных которые должны быть числовыми.
          А если это число может иметь нули в старших разрядах, которые отбрасывать нельзя? К примеру номер счета в банке или номер банковской карточки.

          Множественные точки выхода могут быть забанены в соглашении по написанию кода.
          Проверка на равенство с false вроде как говно, но зато код предельно понятен, можно как книгу читать.
          Короче говоря, код не шибко говнистый.
          Ответить
          • Нули впереди нужны только для представления. При хранении/использовании они не нужны. А с представлением прекрасно справляется String.format
            Ответить
            • Спорный вопрос. Идентификаторы часто состоят не только из цифр, и тогда наиболее логично хранить их как строки. А так получается, что идентификаторы - это идейно строки, а вот в данном конкретном случае их вдруг решают хранить как числа.
              Или вариант поинтереснее - сначала идентификаторы были только из цифр, а потом ВНЕЗАПНО заказчику захотелось заодно и букафки использовать. И что, переписывать весь код, который полагается на то, что идентификатор - это обязательно число.
              Спорно, вообще говоря

              P. S. Возможно, я несу бред, но считать идентификатор числом всегда казалось мне слегка непредусмотрительным
              Ответить
          • Если return запрещён, значит break. И ССЗБ — код стал громоздче.

            == false — довольно нетрадиционный способ показать отрицание, человеческие языки не так устроены (кроме индийского, наверное).
            Ответить
    • isDigit() == false
      я думал, так пишут только в лабах
      Ответить
      • туториал та же лаба
        Ответить
        • Значит ли это, что лабы пишут так коряво, потому в туториалах говно?
          Ответить
          • туториалы пишут студенты, поэтому говно везде.
            Ответить
      • Как сказать, у меня один знакомый иногда пишет == когда надо !=. При этом он прекрасно понимает, что должно быть !=. Это как буквы переставлять в слогах слова. Есть такая болезнь. Поэтому написать явно isDigit() == false является более очевидным, чем !isDigit(). Шансы допустить ошибку уменьшаются. Я пишу слепым набором, однако частенько допускаю опечатки в "про" и "пор", хотя прекрасно понимаю, как правильно. Порой это просто "перестрахуй" =)
        Ответить
        • А в нормальных языках пишут not IsDigit
          Ответить
          • ... а также begin и end?
            Ответить
          • соглашусь, что Not иногда более очевиден, хотя лично у меня с восприятием проблем отрицания в записи через ! не возникает.

            не соглашусь с фразой "в нормальных языках"
            Ответить
            • >не соглашусь с фразой "в нормальных языках"
              [sarcasm]
              правильно, потому что должно быть "в совершенных языках"
              [/sarcasm]
              Ответить
            • Паскалоидные более нормальные, чем сишкосемейство. Да и по мощности*производительности среди них есть и сопоставимые с крестами, в то же время куда более простые и понятные.
              Ответить
              • >куда более простые и понятные
                Да ну! CUDA похожи на С++:
                http://computer-graphics.se/hello-world-for-cuda.html
                Не ожидал, что Тарас так отзовется о плюсах)
                Ответить
                • куда-CUDA?
                  Ответить
                • Как? Да, плюсы относительно мощные. Правда, какой ценой эта мощность достигнута...
                  Ответить
                  • >Да, плюсы мощные.
                    Я думал есть хоть один человек на сайте, который полностью меня поддерживает в отношении плюсов.
                    А Тарас-то, говорят, не настоящий!
                    Ответить
                    • Плюсы такие же мощные, как старые Жигули, которым вмандили движок от Камаза, не обращая внимания на то, что крышку капота пришлось снять, на то, что мотор заслонил нахуй весь обзор и водятлу не видно ничего, и на то, что если чуть посильнее нажать на газ, то крутящий момент скрутит нахуй кузов винтом.
                      Ответить
                      • Не, в с++ два плюса, значит в движке два коленвала (да-да, бывают такие), и крутящие моменты от них уравновешены :).
                        Ответить
                        • Бля, я про момент, идущий по кардану.
                          Ответить
                          • там два кардана
                            Ответить
                            • А, тогда извините.
                              Круто, Жигули, в которые вмандили мотор от Камаза и два кардана, чтобы их не крючило нахуй от крутящего момента.
                              Ответить
                              • Вы чего то путаете. Там целых два двигателя от реактивного самолета: ++.

                                Проблема в том, что корпус и шасси жигули не выдерживают перегрузок, но если летать очень аккуратно - может повести.
                                Ответить
                                • И в какую сторону может повести?
                                  Ответить
                                  • повести в сторону везения :)
                                    Ответить
                                  • >И в какую сторону может повести?
                                    Может повести к крестовым победам. Если быть не аккуратным, то просто развалится.
                                    Ответить
              • Классификация языков по синтаксису оператора отрицания?
                Ответить
        • Опечатки типа "пор/про" фиксятся проверкой орфографии.
          А опечатки типа ==/!= отладчиком.
          Ответить
    • показать все, что скрытоvanished
      Ответить

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