Como converter string para longa sem perder zero à esquerda [duplicado]

Sep 22 2020

No meu método de serviço da web, tenho uma entrada com tipo Long. Devo adicionar dois zeros à esquerda, então converti para String e concato os dois zeros, então devo converter novamente para Long, descobri que o tipo Long em java ignora o zero esquerdo. Como posso manter o zero à esquerda em um valor Longo?

Long a=58451236;
String b= "00"+String.valueOf(a);
Long c = Long.parseLong(b); // ==> Excepected value : 0058451236, found c= 58451236

Respostas

4 luk2302 Sep 22 2020 at 17:20

Você não sabe, um Long/ long/ Integer/ inté um número, um número que não tem zeros à esquerda. Apenas uma representação de string de um número pode ter zeros à esquerda.

Se você precisa absolutamente dos zeros à esquerda e o número 0001 é diferente de 001, então você não está lidando com números, mas apenas com strings que se parecem com números e você não deve convertê-los em um longo em primeiro lugar.

omer Sep 22 2020 at 17:33

Você não pode porque a Longnão tem um zero à esquerda.

Você pode armazená-lo StringassimString.format("%02d", longValue);

Jabir Sep 22 2020 at 17:39

Um long não pode ter o valor de lead 0. Não sei sobre o seu caso de uso, mas se você quiser 00 como lead, não converta de volta para long , use String .