- 1
- 2
- 3
- 4
- 5
- 6
if (((((length > 4) && ((anUrl[0] == 'h') || (anUrl[0] == 'H'))) &&
((anUrl[1] == 't') || (anUrl[1] == 'T'))) &&
(((anUrl[2] == 't') || (anUrl[2] == 'T')) &&
((anUrl[3] == 'p') || (anUrl[3] == 'P')))) &&
((anUrl[4] == ':') || (((length > 5) &&
((anUrl[4] == 's') || (anUrl[4] == 'S'))) && (anUrl[5] == ':'))))
((anUrl[4] == ':') || (anUrl[4] == 's') || (anUrl[4] == 'S')) && (anUrl[(anUrl[4] == ':') ? 4 : 5] == ':')
aParameter, theDatabase...
char[] a = anUrl.ToUpper().ToCharArray();
if (anUrl.length > 4)
{
if (a[1] == 'T' && a[2] == 'T' && a[3] == 'P' && a[4] == ':')
do_something();
}
if (anUrl.length > 5)
{
if (a[4] == 'S' && a[5] == ':')
do_something();
}
открытие тцп соединения - 0-50мс
время ожидания ответа от сервака - от 100мс до inf+
проверка http или https - 0.000000000000000000001 секунды! (priceless!)
Другой смолчал и стал пред ним ходить.
Сильнее бы не мог он возразить;
Хвалили все ответ замысловатый.
Но, господа, забавный случай сей
Другой пример на память мне приводит:
Ведь каждый день пред нами солнце ходит,
Однако ж прав упрямый Галилей.
ОК, зато пайлоны точно не двигаются.
И да, не учтена разрядность машины. Если строка приходит в восьмибитной кодировке, а машина 32-битная, или если строка в 16-битной кодировке, а машина 64-битная, то можно сравнивать сразу по четыре символа.