Проверять содержимое строки? Длина строки против пустой строки - PullRequest
13 голосов
/ 13 августа 2008

Что является более эффективным для компилятора и лучше всего проверять, является ли строка пустой?

  1. Проверка, соответствует ли длина строки == 0
  2. Проверка, является ли строка пустой (strVar == "")

Кроме того, зависит ли ответ от языка?

Ответы [ 13 ]

0 голосов
/ 13 августа 2008

Для струн C,

if (s[0] == 0)

будет быстрее, чем

if (strlen(s) == 0)

или

if (strcmp(s, "") == 0)

потому что вы избежите накладных расходов при вызове функции.

0 голосов
/ 13 августа 2008

В этом случае непосредственная проверка длины выполняется быстрее, поскольку она позволяет избежать затрат на создание новой пустой строки.

@ ДерекПарк: Это не всегда так. "" является строковым литералом, поэтому в Java он почти наверняка уже будет интернирован.

0 голосов
/ 13 августа 2008

На самом деле, IMO лучший способ определить это метод IsNullOrEmpty () класса string.

http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.

Обновление: я предположил .Net, на других языках это может отличаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...