Pegar somente numeros de uma String

7 respostas
S

Pessoal tenho uma string e gostaria de pegar somente os numeros de uma String.

Exemplo :

String unidade = “SC - 7448”

to fazendo assim hoje:

usuario.setCnpjUnidade(unidade.substring(5, 9));

Mais meu probleam é se estiver cadastrado por exemplo assim “SC-7448” ou “7448” ou etc… gostaria de pegar somente os numeros pra garantir que tenho esse 4 numeros.

7 Respostas

J

Use o replaceAll():

"SC-7448".replaceAll("[^0-9]", "");
A

surfzera:
Pessoal tenho uma string e gostaria de pegar somente os numeros de uma String.

Exemplo :

String unidade = “SC - 7448”

to fazendo assim hoje:

usuario.setCnpjUnidade(unidade.substring(5, 9));

Mais meu probleam é se estiver cadastrado por exemplo assim “SC-7448” ou “7448” ou etc… gostaria de pegar somente os numeros pra garantir que tenho esse 4 numeros.

Ola Surfzera,

package br.com.basecompany.nfe.mail;

import java.util.regex.*;

class TesteProGuj {
    private static String REGEX = "\d+";
    private static String INPUT = "askjdsadAÇSJD=544333sad|TESTE~çç-(*&¨%$#%@";

    public static void main(String[] args) {
        Matcher matcher = Pattern.compile(REGEX).matcher(INPUT);
        if (matcher.find()) {
            System.out.println("Número: " + matcher.group());
        }
    }
}
S

ja resolvi valeu galera

String unidade1 = unidade.replaceAll("\D", “”); //Troca tudo que não for dígito por vazio

J

wellington.nogueira:
Caso exista números na primeira parte da string, o regex que o joyle postou não funcionaria.

Engraçado, acabei de testar e funcionou! Sempre usei o regex pra esse tipo de situação e nunca tive nenhum problema!

L

Exemplo:
https://sites.google.com/site/lucasportela/home/java/separarnumerosdeumastring

W

Caso exista números na primeira parte da string, o regex que o joyle postou não funcionaria.

Usando substring, ao invés de definir as posições exatamente, pode-se usar a dimensão da string para calcular as mesmas (claro, apenas se sempre for 4 números e sempre as últimas letras da string).

String variavel = "1ABC-1234"; String soNumeros = variavel.substring(variavel.length() - 4); System.out.println(soNumeros);

Outra alternativa seria usar o split (considerando que a separação é sempre o “-” )

String[] stringDividida = variavel.split("-"); String soNumeros2 = stringDividida[1].trim(); //Obtendo a segunda parte System.out.println(soNumeros2);

W

joyle:
wellington.nogueira:
Caso exista números na primeira parte da string, o regex que o joyle postou não funcionaria.

Engraçado, acabei de testar e funcionou! Sempre usei o regex pra esse tipo de situação e nunca tive nenhum problema!

Descrevi um caso em específico: testei para a situação 1SC - 7448 que retornou 17448.

Criado 5 de agosto de 2011
Ultima resposta 7 de ago. de 2011
Respostas 7
Participantes 5