Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import javax.swing.JOptionPane;
- public class Eq1grau {
- static List <Integer> numeros;
- static List <Integer> numerosX;
- static List <Integer> numerosY;
- public static void main (String[] args){
- int i;
- int j = 0;
- /*
- ETAPAS:
- 1. Encontrar todos os números dentro de uma string e converter para INT [COMPLETADO]
- 2. Adicionar tudo para um array para poder trabalhar depois [COMPLETADO]
- 3. Verificar se é incógnita ou não (possui X ou Y no final)
- */
- String s;
- s = JOptionPane.showInputDialog(null, "digite: ", "30x + 14y - 2 +34 = -18 + 942y - 9310034x"); //recebe equação do usuário
- int limite = s.length() -1; //limite da equação do usuário
- numeros = new ArrayList<>(); //array contendo todos os números da string já convertidos para int
- numerosX = new ArrayList<>(); //array contendo todos os números da string já convertidos para int
- numerosY = new ArrayList<>(); //array contendo todos os números da string já convertidos para int
- for(i=0; i < limite; i++){
- try{
- String Auxiliar = "";
- int numero = 0;
- if(Character.isLetter(s.charAt(i))){ //se encontrar um caractere que for letra não faz nada :)
- System.out.print("");
- }
- while(Character.isDigit(s.charAt(i + j))){ //se encontrar um número, verifica se o próximo é um número também. enquanto o
- //próximo for um número, permanece no while
- s += " "; //adiciona espaço vazio no final da equação para não estourar o Catch
- Auxiliar += s.charAt(i+j); //concatena número para um String
- j += 1; //incrementa o J para poder ver o próximo caractere
- }
- int Numero = Integer.parseInt(String.valueOf(Auxiliar)); //converte string auxiliar concatenada para Int
- if (s.charAt(i+j) == 'x'){ //se possuir a letra X após o número (se for uma incógnita)
- System.out.print(Numero + "x ~ "); //exibe na tela para teste
- AdicionaNumeroVetorX(Numero); //adiciona no arraylist
- }
- else if (s.charAt(i+j) == 'y'){ //se possuir a letra Y após o número (se for uma incógnita)
- System.out.print(Numero + "y ~ "); //exibe na tela para teste
- AdicionaNumeroVetorY(Numero); //adiciona no arraylist
- }
- else if (s.charAt(i+j) != 'y' && s.charAt(i+j) != 'x'){ //caso não seja incógnita
- System.out.print(Numero + " ~ "); //exibe na tela para teste
- AdicionaNumeroVetor(Numero); //adiciona no arraylist
- }
- }
- //capturando erros
- catch(StringIndexOutOfBoundsException e){
- System.out.print("Erro, ");
- }
- catch(NumberFormatException e){
- }
- } //final do for
- //Exibindo array de inteiros
- System.out.print("\n\nOs números inteiros são: ");
- for (int k = 0; k < numeros.size(); k++){//for para exibir tudo q está dentro do arraylist
- System.out.print(numeros.get(k) + ", "); //mostra todos os números
- }
- System.out.print("\n\nOs números com X são: ");
- for (int k = 0; k < numerosX.size(); k++){//for para exibir tudo q está dentro do arraylist
- System.out.print(numerosX.get(k) + ", "); //mostra todos os números
- }
- System.out.print("\n\nOs números com Y são: ");
- for (int k = 0; k < numerosY.size(); k++){//for para exibir tudo q está dentro do arraylist
- System.out.print(numerosY.get(k) + ", "); //mostra todos os números
- }
- /*
- int soma = numeros.get(0) + numeros.get(1);
- System.out.print("\nSoma: "+soma);
- */
- } //fim Main
- public static void AdicionaNumeroVetor(int AdicionarNumero){ //método para adicionar números
- numeros.add(AdicionarNumero);
- }
- public static void AdicionaNumeroVetorX(int AdicionarNumero){ //método para adicionar números
- numerosX.add(AdicionarNumero);
- }
- public static void AdicionaNumeroVetorY(int AdicionarNumero){ //método para adicionar números
- numerosY.add(AdicionarNumero);
- }
- } //fim classe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement