1. C# / Говнокод #9557

    +106

    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
    public static boolean isNumeric(string word)
    {
    	char[] charArray = word.toCharArray();
    	
    	foreach (char letter in charArray)
    	{
    		if (!(letter == '0' || letter == '1' || letter == '2' || letter == '3' || letter == '4' || letter == '5' || letter == '6' || letter == '7' || letter == '8' || letter == '9'))
    		{
    			return false;
    		}
    		return true;
    	}
    }

    За одно и подскажите правильный, оптимальный вариант этой функции

    Запостил: vistefan, 28 Февраля 2012

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

    • Convert.ToInt*
      Ответить
    • int.TryParse

      А вообще, съебись на профильный форум, школота!
      Ответить
      • В конец наркоманов развелось :(
        Теперь что, все сообщения помечать тегом <sarcasm></sarcasm> ?

        Описание под кодом - это слова гениального автора кода, который не вдуплял отчего не пашет.
        Ответить
        • Комментарии бы не помешали под ГК по истории происхождения кода. Потому что: не наркоманов развелось, а ясновидящих совсем мало. В итоге: школокод и скатывание в глубокий минус. Разве это не очевидно?
          Ответить
      • а чего не Double.TryParse?
        Ответить
    • Нерабочий кот
      Ответить
    • using System;
      using System.Linq;

      // ....

      string str = "123456";
      bool isNumeric = str.All(Char.IsDigit);
      Ответить
    • letter in ['0'..'9']
      Ответить
      • -5.5 Слабо?
        А -5---5.0.?
        TryParse - самый верный вариант, еще и с проверкой на то, что это не просто число, а еще и число нужного типа (целое, положительное и т.д.)
        Ответить
    • Не надо было подсказывать, а то он ещё запостить может..
      Говнокод имени себя (при условии написания его в здравом уме) - моветон. А этот говнокод - признание в неспособности читать документацию.
      Ответить
    • Провериться только первый символ )
      Ответить
    • Вы все - Дартаньяны, а я - пидорас!
      Ответить
    • А можно использовать два регекспа
      Для double
      (?:
      \b
      (?<intpart>\d+)
      (?>
      (?<point>(?<=[\d\s,;+\-*/(=]|^)\.(?=[,;eE\d\s+\-*/)=]|$))
      (?<fracpart>\d+)?
      )?
      (?(point)
      (?:
      [eE]
      (?<expsign>[-+])?
      (?<exppart>\d+)
      )?
      |
      (?:
      [eE]
      (?<expsign>[-+])?
      (?<exppart>\d+)
      )
      )
      |
      (?<point>(?<=[\d\s,;+\-*/(=]|^)\.(?=[,;eE\d\s+\-*/)=]|$))
      (?<fracpart>\d+)
      (?:
      [eE]
      (?<expsign>[-+])?
      (?<exppart>\d+)
      )?
      )\b

      и для int

      \b(?<hex>0x)?(?<intpart>\d+)\b
      Ответить
    • показать все, что скрытоvanished
      Ответить

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