Como só deixar números em uma string enviada ???
Digamos que
[code]
String s = “ad8sa7d89723***&777a77de²²><;;/°#$%a11123”;
//como transformar “s” em
String s = “87897237777711123”; //como fazer ??[/code]
Como só deixar números em uma string enviada ???
Digamos que
[code]
String s = “ad8sa7d89723***&777a77de²²><;;/°#$%a11123”;
//como transformar “s” em
String s = “87897237777711123”; //como fazer ??[/code]
Exemplo rápido que acabei de fazer:
[code]package teste;
public class Main {
public static void main(String[] args) {
// TODO code application logic here
String teste = "ad8sa7d89723***&777a77de²²><;;/°#$%a11123";
StringBuffer sb = new StringBuffer();
char [] caracteres = teste.toCharArray();
for (Character caracter : caracteres) {
if (Character.isDigit(caracter)) {
sb.append(caracter);
}
}
System.out.println(sb.toString());
}
}
[/code]
Explicação:
Obs: a estrutura utilizada for só funciona a partir do Java 5.
Espero que atenda suas necessidades.
[quote=lgi2020]Exemplo rápido que acabei de fazer:
Obs: este for só funciona a partir do Java 5.
Espero que atenda suas necessidades.[/quote]
Foda é a gambiarra, ter que percorrer a string toda… deve ter uma forma de filtrar sem precisar de for ^^
[quote=Lavieri][quote=lgi2020]Exemplo rápido que acabei de fazer:
Obs: este for só funciona a partir do Java 5.
Espero que atenda suas necessidades.[/quote]
Foda é a gambiarra, ter que percorrer a string toda… deve ter uma forma de filtrar sem precisar de for ^^[/quote]
É…
Até acho que tem mesmo…
Mas não consegui pensar em nada no momento.
Dá pra ESTE código (gambiarrado) ficar com menos linhas (usando só o necessário):
[code]public class Main {
public static void main(String [] args) {
StringBuffer sb = new StringBuffer();
for (Character caracter : "ad8sa7d89723***&777a77de²²><;;/°#$%a11123".toCharArray())
if (Character.isDigit(caracter)) sb.append(caracter);
System.out.println(sb.toString());
}
}
[/code]
Abraços.
Usando uma expressão regular fica bem mais simples…
String s = "ad8sa7d89723***&777a77de²²><;;/°#$%a11123";
String ns = s.replaceAll( "\D*", "" ); // troca tudo que não for dígito ( \D ) por vazio.
System.out.println( ns );
[]´s
[quote=davidbuzatto]Usando uma expressão regular fica bem mais simples…
String s = "ad8sa7d89723***&777a77de²²><;;/°#$%a11123";
String ns = s.replaceAll( "\D*", "" ); // troca tudo que não for dígito ( \D ) por vazio.
System.out.println( ns );
[]´s[/quote]
isso!!! garoto!! tnks!
auhaa apesar de que, olhei dentro do ReplaceAll e o método la dentro funfa de um modo altamente complexo! e faz um while por toda a string… mas me sinto mais feliz em usar um comando de String ^^ e isso é o que vale
[quote=Lavieri][quote=davidbuzatto]Usando uma expressão regular fica bem mais simples…
String s = "ad8sa7d89723***&777a77de²²><;;/°#$%a11123";
String ns = s.replaceAll( "\D*", "" ); // troca tudo que não for dígito ( \D ) por vazio.
System.out.println( ns );
[]´s[/quote]
isso!!! garoto!! tnks!
auhaa apesar de que, olhei dentro do ReplaceAll e o método la dentro funfa de um modo altamente complexo! e faz um while por toda a string… mas me sinto mais feliz em usar um comando de String ^^ e isso é o que vale[/quote]
Muito melhor!!!
Com a dor de cabeça que estou, nunca iria me lembrar de replaceAll + regex…
Show de bola.