170 похожих чатов

У меня есть неттивский ByteBuf (или слайс от ByteBuf), в

котором в виде байтиков лежит строка в Utf-8.

Есть ли какой-то готовый (или полуготовый) способ получить совместимые с java.util.String реализации hashCode/equals, не разбирая всю эту строку в отдельный инстанс String?

10 ответов

15 просмотров

Не очень понял задачу, хотите получить хешкод стринга, но не читая сам стринг с ByteBuf?

Stanislav-K Автор вопроса
mts2200
Не очень понял задачу, хотите получить хешкод стри...

Да, не хочу делать аллокацию промежуточного стринга Хочу сразу сходить в мапу и достать оттуда интернированный (понятно что тут придется пошаманить с обертками которые переопределят hashCode/equals для ключа на лукапе, но я тут все контролирую)

Stanislav-K Автор вопроса
Stanislav K
Да, не хочу делать аллокацию промежуточного стринг...

мне в принципе подойдет какой-нибудь конвертер utf8->utf16 главное чтобы он мне utf16 налил в тот буфер который я ему дам, а не аллоцировал

Можно вместо стринга в ByteBuf кидать сразу его хешкод, но тут могут быть проблемы, если вдруг что-то меняли в вычислении хеша на разных версиях Java

Stanislav-K Автор вопроса
mts2200
Можно вместо стринга в ByteBuf кидать сразу его хе...

>меняли в вычислении хеша на разных версиях Java это я как раз не боюсь короче говоря, мне нужен неаллоцирующий перекодировщик utf8->utf16 остальное дело техники

Stanislav K
мне в принципе подойдет какой-нибудь конвертер utf...

В DataInputStream есть код, который из byte[] в UTF создает строчку

Stanislav K
>меняли в вычислении хеша на разных версиях Java э...

а скопировать код из стдлиб utf8->utf16, немного поменяв его, чтобы сделать неаллоцирующим - большой объем работы? или не хочется этот код поддерживать

Stanislav-K Автор вопроса

да не хочется возиться просто и поддерживать но видимо придется я подумываю уже скопировать из com.google.protobuf.Utf8.UnsafeProcessor#decodeUtf8Direct и адаптировать под netty buf

Stanislav K
да не хочется возиться просто и поддерживать но в...

а насколько кстати часто там будут лежать отличные от ascii символы? если это супер редкий кейс, то можно только ascii покрыть всего в несколько строк кода, и сделать фолбек на String, в случае utf8 символов

Stanislav-K Автор вопроса
Denis Pavlyuchenko
а насколько кстати часто там будут лежать отличные...

заранее не знаю — произольный пользовательский инпут но здравый смысл подсказывает, что как минимум 80% будет latin1 хорошая идея — благодарю

Похожие вопросы

Обсуждают сегодня

Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
9
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Карта сайта