Remover zeros a esquerda

Amigo eu tenho o código:

public String removeZeros(String linha) { String x = null; x = linha.replaceAll("0", "").replaceAll("", ""); return x; }

Números como
01
02
03
04
funcionam

mais quando encontra o 10, 20, 30
ele retorna 1,2,3

como eu poderia resolver ?

Obrigado.

Se eu entendi a grosso modo, poderia ser:

[code] public String removeZeros(String linha) {
String x = null;

    if(linha.startsWith("0")){
        x = linha.replaceAll("0", "").replaceAll("", "");
    } else {
        x = linha; 
    }
    return x;

}[/code]

ainda não
quando ele encontra o número 10

ele retorna 1

O número 10 no meio de outros números, ou só 10?

Porque fiz o teste aqui só com 10 e deu boa…

Essa “linha” recebera letras? Porque não usar int?

Abraços…

Porque você não usa algo do tipo: Integer.parseInt(linha)?

rss por favor me perdoe kkk
não é que nossa amiga tem razão, qualquer string transformando para inteiro… o zero a esquerda ira perder o valor.

Obrigado a todos;.

[quote=marciofermino]rss por favor me perdoe kkk
não é que nossa amiga tem razão, qualquer string transformando para inteiro… o zero a esquerda ira perder o valor.

Obrigado a todos;.[/quote]

Por isso perguntei porque não usar um int… :slight_smile:

Abraços…

public String removeZeros(String linha) { return linha.replaceFirst("0*", ""); }Siceramente, nem eu gostei dessa solução, mas se você for usar String é melhor isso do que transformar pra Integer pra depois ter que voltar pra String.

Olá,

Duas considerações:

-Integer.parseInt() funciona desde que seu número cabe num inteiro do Java.

-O regexp do ozix funciona para números grandes, mas eu imagino que num caso de “0”, ou “00” você quer que o retorno seja “0” e não vazio.

[]s,
Sami