Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.JOptionPane;
- public class Eq1grau {
- public static void main (String[] args){
- int i;
- String valorXcomDoisNumeros; //quando encontrar um valor de 2 numeros + x na string do usuário (como 12x), armazena
- int X2n; //converte valorXcomDoisNumeros para Int e armazena aqui!
- String valorXcomUmNumero; //quando encontrar um valor de 1 número + x na string do usuário (como 4x), armazena
- int X1n; //converte valorXcomUmNumero e armazena aqui
- String s;
- s = JOptionPane.showInputDialog(null, "digite: "); //recebe equação do usuário
- for(i=0; i < s.length() ; i++){
- try{
- if(Character.isDigit(s.charAt(i)) && Character.isLetter(s.charAt(i+1))) { //vê se o caractere é um número + uma letra [sequencialmente]
- //System.out.print("É número + letra sequencialmente! ~ ");
- //VERIFICA SE X É NÚMERO DE DOIS DÍGITOS
- boolean DoisNumerosMaisLetra = Character.isDigit(s.charAt(i-1)) && s.charAt(i+1) == 'x';
- if(DoisNumerosMaisLetra == true){ //caso o caractere anterior do número também seja um número &
- //depois seja a letra X,
- //System.out.print("São 2 números + letra X! ~ ");
- boolean testeDoisNumeros =s.charAt(i - 2) == '-' || s.charAt(i-3) == '-' ; //se o caractere anterior dos números for "-", é negativo!
- //VERIFICA SE X DE 2 NÚMEROS É NEGATIVO
- if (testeDoisNumeros == true){ //verifica se é negativo! [se encontrar um sinal de - 1 ou 2 espaços antes
- valorXcomDoisNumeros = s.charAt(i-1) + "" + s.charAt(i); //pega os 2 números+ X, por exemplo: 10x.
- X2n = Integer.parseInt(valorXcomDoisNumeros) * -1; //converte para int o String capturado e deixa negativo
- System.out.print(X2n + "x, "); //Exibe na tela
- }
- //VERIFICA SE X DE 2 NÚMEROS É POSITIVO!
- if (testeDoisNumeros == false){ //Este IF NÃO está sendo lido!
- valorXcomDoisNumeros = s.charAt(i-1) + "" + s.charAt(i); //pega os 2 números+ X, por exemplo: 10x.
- X2n = Integer.parseInt(valorXcomDoisNumeros); //converte para int o String capturado*/
- System.out.print(X2n + "x, "); //Exibe na tela
- }
- }
- //VERIFICA SE X É NÚMERO DE UM DÍGITO
- if(DoisNumerosMaisLetra == false){
- boolean testeUmNumero = s.charAt(i - 1) == '-' || s.charAt(i - 2) == '-' ;//verifica se é negativo. True = negativo, false = pos.
- //VERIFICA SE É NEGATIVO
- if (testeUmNumero == true){
- valorXcomUmNumero= s.charAt(i) + ""; //caso contrário, exibe só um número + X, por exemplo: 5x.
- X1n = Integer.parseInt(valorXcomUmNumero) * -1; //converte para Int o número caputrado
- System.out.print(X1n + "x, "); //Exibe na tela
- }
- //VERIFICA SE É POSITIVO
- if (testeUmNumero == false){
- valorXcomUmNumero= s.charAt(i) + ""; //caso contrário, exibe só um número + X, por exemplo: 5x.
- X1n = Integer.parseInt(valorXcomUmNumero); //converte para Int o número caputrado
- System.out.print(X1n + "x, "); //Exibe na tela
- }
- }
- } //fim do IF para ver se é número & letra depois
- } //fim do try
- catch(StringIndexOutOfBoundsException e){
- System.out.print("Erro, ");
- }
- } //final do for
- } //fim Main
- } //fim classe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement