когда я смотрю на строку в Visual Studio, в ней ничего нет
Я имею в виду, что вы подразумеваете, что когда вы наводите курсор мыши на строку вотладчик (или добавить часы, или осмотреть местных жителей, или просмотреть визуально представление строки), он кажется пустым.Это потому, что \0
, как и некоторые другие символы, является непечатным символом.Эти символы присутствуют, но они не вызывают визуального эффекта.
Если вы хотите определить, равен ли байтовый массив только нулю, это просто:
(Примечаниечто указанное выше имя массива недопустимо, поэтому я назову его data
)
if(data.Add(b => b == 0))
{
// is only null characters
}
Однако кажется, что вам нужно что-то более надежное и что-то, что могло бы работатьстроки.Вы можете использовать простой RegEx для замены диапазона непечатаемых символов Unicode (я знаю, что ваша исходная строка, как в ASCII, но когда вы анализируете ее, она сохраняется внутри как UTF-16):
yourString = Regex.Replace(yourString, "[\x00-\x1F]", "");
В этот момент string.IsNullOrEmpty(yourString)
должно вернуть true
.