Advertisement
dantepw

Exercício Java Equação

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