Comprimento da string ao converter de uma matriz de caracteres
Estou tendo sérios problemas com o manuseio de cordas. Como meus problemas são difíceis de descrever, começarei com algum código de demonstração que os reproduz:
Dim s1 As String = "hi"
Dim c(30) As Char
c(0) = "h"
c(1) = "i"
Dim s2 As String = CStr(c)
s2 = s2.Trim()
If not s1 = s2 Then
MsgBox(s1 + " != " + s2 + Environment.NewLine + _
"Anything here won't be printed anyway..." + Environment.NewLine + _
"s1.length: " + s1.Length.ToString + Environment.NewLine + _
"s2.length: " + s2.Length.ToString + Environment.NewLine)
End If
O resultado messagebox fica assim:
A razão pela qual essa comparação falha é que s2 tem o comprimento 31 (de, o tamanho original da matriz) enquanto s1 tem o comprimento 2.
Eu me deparo com esse tipo de problema com bastante frequência ao ler informações de cadeia de caracteres a partir de matrizes de bytes, por exemplo, ao manipular ID3Tags de MP3s ou outras informações codificadas (ASCII, UTF8, ...) com tamanho pré-especificado.
Existe alguma maneira rápida e limpa de evitar esse problema?
Qual é a maneira mais fácil de "aparar" s2 para a string mostrada pelo depurador?
Agradecemos antecipadamente, Janis