Como só deixar números em uma string enviada ???
Digamos queString s = "ad8sa7d89723***&777a77de²²><;;/°#$%a11123";
//como transformar "s" em
String s = "87897237777711123"; //como fazer ??
Como só deixar números em uma string enviada ???
Digamos queString s = "ad8sa7d89723***&777a77de²²><;;/°#$%a11123";
//como transformar "s" em
String s = "87897237777711123"; //como fazer ??
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());
}
}
Explicação:
- primeiro transformamos a String (cadeia de caracteres) em um array de caracteres;
- criamos uma nova instância de um StringBuffer;
- iteramos por todos os elementos do array e, para cada elemento, utilizamos o método isDigit() da classe Character para testar se o caracter testado é um número;
- caso o caracter seja um dígito, adicionamos o mesmo ao nosso objeto StringBuffer;
- após percorrer todos os elementos, imprimimos a string armazenada no StringBuffer;
Obs: a estrutura utilizada for só funciona a partir do Java 5.
Espero que atenda suas necessidades.
Exemplo rápido que acabei de fazer:Obs: este for só funciona a partir do Java 5.
Espero que atenda suas necessidades.
Foda é a gambiarra, ter que percorrer a string toda… deve ter uma forma de filtrar sem precisar de for ^^
Exemplo rápido que acabei de fazer:Obs: este for só funciona a partir do Java 5.
Espero que atenda suas necessidades.
Foda é a gambiarra, ter que percorrer a string toda... deve ter uma forma de filtrar sem precisar de for ^^
É...
Até acho que tem mesmo...
Mas não consegui pensar em nada no momento.
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());
}
}
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
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
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
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
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
Muito melhor!!!
Com a dor de cabeça que estou, nunca iria me lembrar de replaceAll + regex… 
Show de bola.