Вы можете написать простой синтаксический анализатор для строки, представляющей биты:
Dim sb As StringBuilder = New StringBuilder()
For pos As Integer = 0 To binary.Length - 8 Step 8
sb.Append(Convert.ToByte(binary.Substring(pos, 8), 2).ToString("X2"))
Next
Console.WriteLine(sb) will print "441CB6E2E335D6"
Или использовать модуль для добавления метода расширения к типу данных строки: [ 117]
Imports System.Runtime.CompilerServices
Imports System.Text
Module modStringExtensions
<Extension()>
Public Function ToHexFromBits(ByVal Value As String) As String
If (Not (Value.Length Mod 8 = 0)) Then Throw New FormatException("Invalid string length")
Dim sb As StringBuilder = New StringBuilder()
For pos As Integer = 0 To Value.Length - 8 Step 8
sb.Append(Convert.ToByte(Value.Substring(pos, 8), 2).ToString("X2"))
Next
Return sb.ToString()
End Function
End Module
Затем используйте расширение для преобразования строки битов в представление HEX :
Dim result As String = binary.ToHexFromBits()
Я был в команде, которая использует библиотеку FJ, и я знаю других. В одной команде он использовался в качестве замены домашней библиотеки, которая была менее отполированной, в другой он заменял Google Collections. Я также знаю некоторых людей, которые копируют исходный код из FJ для развертывания собственной реализации.
По моему мнению, если вам нужно использовать Java, вы должны использовать что-то вроде функциональной Java, чтобы сделать вашу жизнь проще.
Сделал это повысить качество или ясность кода?
Код, написанный в функциональном стиле, более лаконичен и, следовательно, более понятен. Библиотека поставляется и поощряет использование неизменяемых структур данных, что повышает качество. Библиотека также поддерживает композицию, а не наследование, что улучшает возможность повторного использования вашего кода.
Повышение производительности?
Определенно. Разработчики с более мощными инструментами более продуктивны. По моему опыту разработчики считают, что первоклассные функции делают программирование проще и приятнее. Счастливые программисты - продуктивные программисты.
Уменьшить потенциальные точки отказа?
Более функциональный стиль программирования препятствует изменчивому состоянию, что устраняет большой класс ошибок. Кроме того, более мощные абстракции приводят к меньшему количеству повторений, что сокращает количество мест, где что-то не так.
Влияние на производительность?
Нет оснований полагать, что на производительность будет влиять так или иначе. Предоставленные структуры данных предназначены для простоты использования и выразительности, а не производительности, но они написаны оптимально для того, что они есть. Как и во всем остальном, то, как вы ведете машину, важнее, чем то, что вы ведете. Например, fj.data. Список - это связанный список, поэтому он имеет O (n) произвольный доступ и конкатенацию, поэтому вы избегаете его для этих целей. Для сравнения, fj.data.Stream имеет конкатенацию O (1).