How to remove trailing nulls (0) from byte array in VB.NET

2 Answers

0 votes
Imports System

Public Class Program
	Public Shared Sub Main()
        Dim byteArray As Byte() = {1, 2, 3, 0, 0, 0, 0}
        
		Dim lastNonNullIndex As Integer = Array.FindLastIndex(byteArray, Function(b) b <> 0)
        Dim trimmedArray As Byte() = New Byte(lastNonNullIndex + 1 - 1) {}
			
        Array.Copy(byteArray, trimmedArray, trimmedArray.Length)

        For Each b In trimmedArray
            Console.Write(b & " ")
        Next
    End Sub
End Class
  

  
' run:
'
' 1 2 3 
'
 

 



answered Mar 12, 2025 by avibootz
0 votes
Imports System

Public Class Program
    Public Shared Sub Main()
        Dim byteArray As Byte() = {1, 2, 3, 0, 0, 0, 0}
        Dim trimmedArray As Byte() = RemoveTrailingNulls(byteArray)
		
        Console.WriteLine(String.Join(", ", trimmedArray))
    End Sub

    Public Shared Function RemoveTrailingNulls(ByVal byteArray As Byte()) As Byte()
        If byteArray Is Nothing OrElse byteArray.Length = 0 Then Return byteArray
        Dim newLength As Integer = byteArray.Length

        While newLength > 0 AndAlso byteArray(newLength - 1) = 0
            newLength -= 1
        End While

        Dim trimmedArray As Byte() = New Byte(newLength - 1) {}
        Array.Copy(byteArray, trimmedArray, newLength)
			
        Return trimmedArray
    End Function
End Class

  
  
' run:
'
' 1, 2, 3
'

 



answered Mar 12, 2025 by avibootz

Related questions

1 answer 123 views
1 answer 162 views
1 answer 114 views
2 answers 125 views
1 answer 96 views
1 answer 173 views
1 answer 94 views
...