Retirar zeros de String ? [RESOLVIDO]

Alguém sabe como retirar os zeros a esquerda de uma String ?

00000062626262626266

Se alguém puder ajudar desde agradeço !

Tenho uma String e gostaria de retirar os zeros a esquerda:

00000062626262626266

62626262626266

Desde já agradeço a quem puder ajudar.

Tendou o replaceAll?

[code]String nums = “98753496153098123”

nums = nums.replaceAll(“Tira isso”, “Insere aqui”)[/code]
No “Insere aqui” deixa como “” (nulo)

É que o replaceAll retira todos os Zeros da String e pode ser assim

00000666007770009

Mas agradeço !

Não sei se é gamgiarra assim, mas funciona

		String x = "0002047";
		String temp = "";
		for (int i = 0; i < x.length(); i++) {
			if (!x.substring(i, i + 1).equals("0")) { //checa se chegou no primeiro caracter q não é 0
				temp += x.substring(i, x.length()); // temp fica com os valores correspondentes à substring da posição atual ate o fim
				break; // sai do laço
			}
		}
		System.out.println("Antes: " + x + " Depois:" + temp);

Metaleiro, não sei se vai servir porque nunca usei esse método, mas olha na API, não posso testar aqui por questão de tempo, mas talvez ajude. Só tem que saber expressão regular :wink:

public String replaceFirst(String regex, String replacement)

Espero ter ajudado.

[quote=asousaj]Não sei se é gamgiarra assim, mas funciona

String x = "0002047"; String temp = ""; for (int i = 0; i < x.length(); i++) { if (!x.substring(i, i + 1).equals("0")) { //checa se chegou no primeiro caracter q não é 0 temp += x.substring(i, x.length()); // temp fica com os valores correspondentes à substring da posição atual ate o fim break; // sai do laço } } System.out.println("Antes: " + x + " Depois:" + temp); [/quote]

Muito obrigado a todos.

Agradeço toda a ajuda !

O método funcionou perfeitamente !

Retirar zeros à esquerda de uma string requer que você se lembre do caso em que a string é totalmente zerada (“00000000000000”).

Pelo que imagino, nesse caso você teria de deixar um zero - ficaria: “0”, não “vazio” como essas soluções que foram apresentadas aqui.

Normalmente eu converteria isso para long, e então converteria de volta, mais ou menos como:

String s = "00000000000";
long x = Long.parseLong (s);
s = Long.toString (s);

Isso também leva em conta o caso “-00000002345” - note que vocês também não pensaram em números negativos, não?

Não tá na especificação a gente não considera :lol:
Senão depois se e somente se der errado eles dizem:

Inclusive como não foi especificado pode até vir “bohemia”, só foi dito que seria uma String, heim? kkkk
:wink:

Para o meu caso funciona perfeitamente.

É específico.

A String virá numérica com zeros a esquerda, nunca valores negativos.

Exemplo :

000999

assim :

999

0007770001

assim :

7770001

O programa já garante que virá em formato numérico.

Obrigado a todos.

Para colocar zeros a esquerda:

        NumberFormat nf = new DecimalFormat("0");
        nf.setMinimumIntegerDigits(8);
        String numeroFormatado = nf.format(number);

Pode utilizar assim.

String numeros = “0000000000000000159”;

numeros = Integer.valueOf(numeros).toString();

Agora o numeros será 159

Se o valor for um número, o método mais fácil é converter para numérico (Double ou Long) e transformar novamente para String, conforme alguns colegas sugeriram.

String newStrValue = Long.valueOf(strValue).toString();

A classe NumberFormat também pode ajudar.

String numero = “000000001290009”;
int x = Integer.parseInt(numero);
System.out.println(x);