Como converter string para longa sem perder zero à esquerda [duplicado]
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
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.
Você não pode porque a Longnão tem um zero à esquerda.
Você pode armazená-lo StringassimString.format("%02d", longValue);
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 .