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.
javahp
Fevereiro 24, 2009, 11:06am
#2
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
javahp
Fevereiro 24, 2009, 11:13am
#4
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…
Loiane
Fevereiro 24, 2009, 11:29am
#5
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;.
javahp
Fevereiro 24, 2009, 3:30pm
#7
[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…
Abraços…
ozix
Fevereiro 24, 2009, 7:27pm
#8
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