1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Obter Valores Inteiros de uma String

Bom dia, Prezados

Gostaria da ajuda de vocês para solucionar a seguinte situação:

Preciso obter dinamicamente os Inteiros de uma String.

Alguns exemplos dessas Strings: 10LV1, 89LV10, 1LV12, etc.

Estava tentando pegar primeiro os Inteiros antes do L e depois Inteiros depois do V.

Porém não estou obtendo sucesso:

Segue meu código teste.

/**
 *
 * @author Franciélly
 */
public class Teste 
{
    public void pegaLivro(String registro)
    {
        try
        {
            Integer a[] = new Integer[5];

            System.out.println("Registro: "+registro);
            System.out.println("Tamanho do Registro: "+registro.length());

            for(int i = 0 ; i < registro.length() ; i++)
            { 
                if (Character.isDigit(registro.charAt(i))) 
                    a[i] = Integer.parseInt(String.valueOf(registro.charAt(i)));
                else
                    JOptionPane.showMessageDialog(null, "ERRO!");
            }
        }
        catch(Exception erro)
        {
            erro.printStackTrace();
        }
    }

    public static void main(String args[])
    {
        new Teste().pegaLivro("10LV1");
    }
}

Ele está entrando somente no else.

O que pode estar incorreto?

Obrigada!

--

SOLUÇÃO:

/**
 *
 * @author Franciélly
 */
public class Teste 
{
    public Integer[] obtemInformacoesDoLivroDeRegistro(String registro)
    {
        Integer[] infosRegistro = new Integer[2];

        try
        {
            // Quebra a String separando os Inteiros que são divididos antes de LV e depois de LV
            String[] partesDoRegistro = registro.split("[a-zA-Z]+");
            // Obtem o Número da Página do Livro de Registros
            infosRegistro[1] = Integer.valueOf(partesDoRegistro[0]);
            // Obtem o Número do Livro de Registros
            infosRegistro[0] = Integer.valueOf(partesDoRegistro[1]);

            System.out.println("Nº do Livro: "+infosRegistro[0]);
            System.out.println("Nº da Página: "+infosRegistro[1]);
        }
        catch(Exception erro)
        {
            erro.printStackTrace();
        }

        return infosRegistro;
    }

    public static void main(String args[])
    {
        System.out.println("1");
        new Teste().obtemInformacoesDoLivroDeRegistro("90LV100");
        System.out.println("\n2");
        new Teste().obtemInformacoesDoLivroDeRegistro("1LV10");
        System.out.println("\n3");
        new Teste().obtemInformacoesDoLivroDeRegistro("59LV1");
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags string integer java ou faça a sua própria pergunta.