Advertisement
dantepw

Exercício Equação Java

Feb 22nd, 2014
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. import javax.swing.JOptionPane;
  3.  
  4. public class Eq1grau {
  5.    
  6.     public static void main (String[] args){
  7.  
  8.         int i;
  9.         String valorXcomDoisNumeros; //quando encontrar um valor de 2 numeros + x na string do usuário (como 12x), armazena
  10.         int X2n; //converte valorXcomDoisNumeros para Int e armazena aqui!
  11.         String valorXcomUmNumero; //quando encontrar um valor de 1 número + x na string do usuário (como 4x), armazena
  12.         int X1n; //converte valorXcomUmNumero e armazena aqui
  13.        
  14.        
  15.     String s;
  16.     s = JOptionPane.showInputDialog(null, "digite: "); //recebe equação do usuário
  17.  
  18.     for(i=0; i < s.length() ; i++){
  19.        
  20.    try{
  21.    if(Character.isDigit(s.charAt(i)) && Character.isLetter(s.charAt(i+1)))  { //vê se o caractere é um número + uma letra [sequencialmente]
  22.        
  23.        //System.out.print("É número + letra sequencialmente!   ~   ");
  24.        
  25.        //VERIFICA SE X É NÚMERO DE DOIS DÍGITOS
  26.        boolean DoisNumerosMaisLetra = Character.isDigit(s.charAt(i-1)) && s.charAt(i+1) == 'x';
  27.         if(DoisNumerosMaisLetra == true){ //caso o caractere anterior do número também seja um número &
  28.                                                                                                                      //depois seja a letra X,
  29.            
  30.            //System.out.print("São 2 números + letra X!   ~  ");
  31.            
  32.            boolean testeDoisNumeros =s.charAt(i - 2) == '-' || s.charAt(i-3) == '-' ; //se o caractere anterior dos números for "-", é negativo!
  33.            
  34.             //VERIFICA SE X DE 2 NÚMEROS É NEGATIVO
  35.             if (testeDoisNumeros == true){ //verifica se é negativo! [se encontrar um sinal de - 1 ou 2 espaços antes
  36.                 valorXcomDoisNumeros = s.charAt(i-1) + "" + s.charAt(i); //pega os 2 números+ X, por exemplo: 10x.
  37.                 X2n = Integer.parseInt(valorXcomDoisNumeros) * -1;       //converte para int o String capturado e deixa negativo
  38.                 System.out.print(X2n + "x, ");                                         //Exibe na tela
  39.             }
  40.            
  41.             //VERIFICA SE X DE 2 NÚMEROS É POSITIVO!
  42.             if (testeDoisNumeros == false){ //Este IF NÃO está sendo lido!
  43.                 valorXcomDoisNumeros = s.charAt(i-1) + "" + s.charAt(i); //pega os 2 números+ X, por exemplo: 10x.
  44.                 X2n = Integer.parseInt(valorXcomDoisNumeros);       //converte para int o String capturado*/
  45.                 System.out.print(X2n + "x, ");                                         //Exibe na tela
  46.         }
  47.            
  48.         }
  49.        
  50.         //VERIFICA SE X É NÚMERO DE UM DÍGITO
  51.         if(DoisNumerosMaisLetra == false){
  52.        
  53.         boolean testeUmNumero = s.charAt(i - 1) == '-' || s.charAt(i - 2) == '-'  ;//verifica se é negativo. True = negativo, false = pos.
  54.  
  55.         //VERIFICA SE É NEGATIVO
  56.         if (testeUmNumero == true){
  57.         valorXcomUmNumero= s.charAt(i) + ""; //caso contrário, exibe só um número + X, por exemplo: 5x.
  58.         X1n = Integer.parseInt(valorXcomUmNumero) * -1; //converte para Int o número caputrado
  59.         System.out.print(X1n + "x, ");             //Exibe na tela
  60.         }
  61.  
  62.         //VERIFICA SE É POSITIVO
  63.         if (testeUmNumero == false){
  64.         valorXcomUmNumero= s.charAt(i) + ""; //caso contrário, exibe só um número + X, por exemplo: 5x.
  65.         X1n = Integer.parseInt(valorXcomUmNumero); //converte para Int o número caputrado
  66.         System.out.print(X1n + "x, ");             //Exibe na tela
  67.         }
  68.        
  69.  
  70.         }
  71.              
  72.             } //fim do IF para ver se é número & letra depois
  73.         } //fim do try
  74.        
  75.         catch(StringIndexOutOfBoundsException e){
  76.            
  77.             System.out.print("Erro, ");
  78.                
  79.         }
  80.        
  81.  
  82.         } //final do for
  83.     } //fim Main
  84. } //fim classe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement