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

Public static HttpRequest.BodyPublisher ofFormData(

Map<Object, Object> data
) {
var first = true;
var builder = new StringBuilder();
for (Map.Entry<Object, Object> entry :
data.entrySet()) {
if (first) first = false;
else builder.append("&");
builder.append("=");
builder.append(URLEncoder.encode(
entry.getKey().toString(),
StandardCharsets.UTF_8
));
}
return HttpRequest.BodyPublishers.ofString(
builder.toString()
);
}

не пойму а в чем смысл if (first) first = false; и по сути непонятно если ферст что?

29 ответов

84 просмотра

Что произойдет по коду, если будет не first?

боже, так форму собирать... смысл - первый элемент коллекции обработать по другому

Eminem- Автор вопроса
Eminem
не пойму вообще)

Ты по коду мне скажи. Ты же знаешь, что иф делает и все такое. Вот и отвечай)

Eminem
это else builder.append("&");

Ну вот. Получается, когда false=true, этого не случится

а как по -твоему иф работает? и что у него в скобочках пишут?

Eminem
это else builder.append("&");

А теперь скажи мне, ты url с параметрами видел хоть раз? Просмотрись)

Eminem
не пойму вообще)

сокращение ферст=труе

Bitarded
сокращение ферст=труе

почему сокращение, если условие - это boolean

Eminem- Автор вопроса

Помогите кто нибудь так я и не разобрался

Eminem
Помогите кто нибудь так я и не разобрался

ну если по коду непонятно, то запусти дебаггер и по шагам пройди метод и посмотри что и как меняется

Так ещё else есть

Eminem- Автор вопроса
Алексей
Откуда код?

хорстман 2 том

Eminem
Помогите кто нибудь так я и не разобрался

Тебе не понятно что конкретно? 1)Синтаксис if(first) 2) зачем нужна такая конструкция в цикле? 3) зачем нужно так строить урл?

Eminem- Автор вопроса
0xDEADFACE
Тебе не понятно что конкретно? 1)Синтаксис if(firs...

зачем тут нужен if непойму как он тут работает. в общем непойму иф, зачем этот тут ферст, по идее его сюда поставили что ферст будет всегда и чтобы его изменить в фоллса или зачем он нужен. ну судя по этой логике и не нужен был этот иф

Eminem
зачем тут нужен if непойму как он тут работает. в...

Совет подебажить вроде выше был. Думаю он самый актуальный

Eminem
зачем тут нужен if непойму как он тут работает. в...

Ок, погнали. Строка запроса(ссылка которую я тебе кидал) передается в таком виде Протокол://хост:порт/ресурс?параметр1=значение&параметр2=значение2&параметр3=значение3... Обрати внимание на часть с параметрами(которая после вопроса) Если ты захочешь построить такую строку то можно параметры со значениями засунуть в мапу и потом их сджойнить поставив между ними амперсанд. Сделать это можно, например, пройдясь по всем элементам мапы в цикле и дописать в строку "&"+entry.key+"="+entry.value Но вот для первого элемента этот амперсанд мешает, поэтому автор завел переменную first и присвоил ей значение true, чтобы для первого элемента не добавлять амперсанд в стринг билдер, а просто переключить его значение в фолс, чтобы на последующих проходах амперсанд добавлялся в начало. В джаве у ифа в условии(скобочках) можно написать любое выражение с типом boolean, что позволяет сократить if(first==true) до if(first)(про это тебе тоже писали)

Eminem
зачем тут нужен if непойму как он тут работает. в...

Ты что, рыбка? Все, к чему мы вчера пришли уже забыл?

Eminem
зачем тут нужен if непойму как он тут работает. в...

Ну простым языком если мы добавляем первую пару ключ-значение, нам не нужно ставить перед ней "&". Но для всех последующих пар нам нужно добавлять этот символ перед ними.

Eminem- Автор вопроса
0xDEADFACE
Ок, погнали. Строка запроса(ссылка которую я тебе...

ох блин спасибо большое)) вообще не мог понять)

Eminem- Автор вопроса
Дэни
Ты что, рыбка? Все, к чему мы вчера пришли уже заб...

да я смотрел смотрел все равно непонял)

Eminem
ох блин спасибо большое)) вообще не мог понять)

Решай задачи из учебника, это правда помогает

Eminem
да я смотрел смотрел все равно непонял)

Что значит "не понял"? Там простой иф и флаг, который можно переключать. Что конкретно не понял?

Eminem- Автор вопроса

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта