.Net: Пустая строка не является пробелом? - PullRequest
2 голосов
/ 07 апреля 2009

Я всегда использую String.IsNullOrEmpty для проверки пустой строки. Недавно мне стало известно, что "" считается пустой строкой. Например,

 Dim test As String = " "
    If String.IsNullOrEmpty(test) Then
        MessageBox.Show("Empty String")
    Else
        MessageBox.Show("Not Emtpy String")
    End If

Появится «Не пустая строка». Так как же мы проверяем наличие "" или "" в строке?

edit: я не знал, что "" считается символом.

Ответы [ 13 ]

0 голосов
/ 07 апреля 2009

Как уже упоминалось, вызов Trim () вызовет исключение NullReferenceException, если строка имеет значение null. Иногда я использую Regex.IsMatch(test, "^ +$") (надеюсь, у меня есть правильный порядок параметров), чтобы проверить один или несколько пробелов. ^ И $ убедитесь, что вы соответствуете всей строке.

0 голосов
/ 07 апреля 2009

Возможно, вы просто хотите обрезать строку (пробелов) перед проверкой?

Dim test As String = " "
If test.Trim().Length = 0 Then // Best option as long as string is guaranteed not to be null.
//  If test = Nothing OrElse test.Trim().Length = 0 Then // If string can be null.
    MessageBox.Show("Empty String")
Else
    MessageBox.Show("Not Emtpy String")
End If
0 голосов
/ 07 апреля 2009

Попробуйте

Dim test As String = " "
If String.IsNullOrEmpty(test.Trim()) Then
    MessageBox.Show("Empty String")
Else
    MessageBox.Show("Not Emtpy String")
End If

Надеюсь, это поможет.

...