Converter int em char ou String

Ola ! Bom dia a todos.

Estou com uma dúvida de conversão. Estou utilizando a classe Scanner para inserir pelo teclado números int mas não consigo entrar com um char. Este é o meu aplicativo:

[code]/* aplicativo que pede ao usuário para entrar com dois operandos e um operador depois

  • calcular e mostrar o resultado da operação correspondnte */

import java.util.Scanner;

class Td2_9 {

public static void main(String[] args){
	
	Scanner input = new Scanner(System.in);
	
	System.out.print("Digite o 1º operando: ");
	int operando1 = input.nextInt();
	System.out.print("Digite o operador: ");
	char operador = input.Char();
	System.out.print("\nDigite o 2º operando: ");
	int operando2 = input.nextInt();
	
	int resultado = 0;
	if(operador == "+"){
		resultado = operando1 + operando2;
	}
	else if(operador == "-"){
		resultado = operando1 - operando2;
	}
	else if(operador == "*"){
		resultado = operando1 * operando2;
	}
	else if(operador == "/"){
		resultado = operando1 / operando2;
	}
	System.out.println("resultado = "+operando1+""+operador+""+operando2);
}

}[/code]

A dúvida é na linha onde declarei a variável [color=blue]char[/color] operador

Declare - a como String e utilize a chamada input.next(), a qual retorna uma String. blz?

Talvez você devesse procurar na api da classe Scanner.

Nao consegui visualizar um método .char().
tente usar o nexShort().

valew

Vou tentar!

Ok! pessoal. Utilizei a dica do Tecnoage e o aplicativo compilou sem erros, mas o resultado não estar sendo calculado. Sempre quando executo o resultado sempre dá 0 (zero). Vejam como estar o código agora: [code]import java.util.Scanner;

class Td2_9 {

public static void main(String[] args){
	
	Scanner input = new Scanner(System.in);
	
	System.out.print("Digite o 1º operando: ");
	int operando1 = input.nextInt();
	System.out.print("Digite o operador: ");
	String operador = input.next();
	System.out.print("Digite o 2º operando: ");
	int operando2 = input.nextInt();
	
	int resultado = 0;
	if(operador == "+"){
		resultado = operando1 + operando2;
	}
	else if(operador == "-"){
		resultado = operando1 - operando2;
	}
	else if(operador == "*"){
		resultado = operando1 * operando2;
	}
	else if(operador == "/"){
		resultado = operando1 / operando2;
	}
	System.out.println("resultado: "+operando1+""+operador+""+operando2+"="+resultado);
}

}[/code]

O que vcs acham que pode estar errado ?

Oi,
Como eu nao tenho Scanner aqui… fiz assim ó: (deve ser a mesma maneira)

[code]
// Declara as variaveis que recebe as teclas do teclado.
BufferedReader
teclado = new BufferedReader(new InputStreamReader(System.in));

// Declara os operadores.
String
operando1 = null;

String
operador = null;

String
operando2 = null;

float resultado1 = 0, resultado3 = 0, total=0;

// Pergunta quel o primeiro operando.
System.out.print("Digite o 1º operando: ");
operando1 = teclado.readLine();
resultado1 = Float.parseFloat(operando1); // Converte o valor digitado

System.out.print("Digite o operador: ");
operador = teclado.readLine();

System.out.print("\nDigite o 2º operando: ");
operando2 = teclado.readLine();
resultado3 = Float.parseFloat(operando2); // Converte o valor digitado.

if (
operador.equals("+")
)
{
total = resultado1 + resultado3;
}
else if (
operador.equals("-")
)
{
total = resultado1 + resultado3;
}
else if (
operador.equals("*")
)
{
total = resultado1 + resultado3;
}
else if (
operador.equals("/")
)
{
total = resultado1 + resultado3;
}

System.out.println(“resultado = “+operando1+””+operador+""+operando2);
System.out.println("Total: "+total);[/code]

Deve ajudar…
Tchauzin!

PUTZ!!! Foi mal, tava com pressa aki na empresa e só compilei… Foi mal cara… rsrsrs nem prestei atenção na lógica… hahaha

Corrigindo… Com Scanner…

import java.util.Scanner;
 
 class Teste {
 	
 	public static void main(String[] args){
 		
 		Scanner input = new Scanner(System.in);
 		System.out.print("Digite o 1º operando: ");
 		int operando1 = input.nextInt();
 		System.out.print("Digite o operador: ");
 		String operador = input.next();
 		System.out.print("\nDigite o 2º operando: ");
 		int operando2 = input.nextInt();
 		
 		int resultado = 0;
 		if(operador.equals("+")){
 			resultado = operando1 + operando2;
 		}
 		else if(operador.equals("-")){
 			resultado = operando1 - operando2;
 		}
 		else if(operador.equals("*")){
 			resultado = operando1 * operando2;
 		}
 		else if(operador.equals("/")){
 			resultado = operando1 / operando2;
 		}
 		System.out.println("resultado = "+operando1+""+operador+""+operando2 + "" + "=" + resultado);
 	}
 }

Vc deveria trocar os testes entre strings de “=” para stringQualquer.equals(“operando”)

ok pessoal, dei uma olhada no código da lina (obrigado lina pela dica) e modifiquei as comparações booleanas de " [color=blue]==[/color] " para o metodo “[color=blue]equals[/color]” e o resultado agora deu tudo OK!. Mas não quero ver apenas o resultado dando certo, quero saber a explicação porque que com o método equals deu certo e com o " == " não deu. Vejam novamente o código: [code]import java.util.Scanner;

class Td2_9 {

public static void main(String[] args){
	
	Scanner input = new Scanner(System.in);
	
	System.out.print("Digite o 1º operando: ");
	int operando1 = input.nextInt();
	System.out.print("Digite o operador: ");
	String operador = input.next();
	System.out.print("Digite o 2º operando: ");
	int operando2 = input.nextInt();
	
	int resultado = 0;
	if(operador.equals("+")){
		resultado = operando1 + operando2;
	}
	else if(operador.equals("-")){
		resultado = operando1 - operando2;
	}
	else if(operador.equals("*")){
		resultado = operando1 * operando2;
	}
	else {
		resultado = operando1 / operando2;
	}
	System.out.println("resultado: "+operando1+""+operador+""+operando2+"="+resultado);
}

}[/code]
[color=green]Obrigado a todos pelas dicas. [/color]

Pois é Tecnoage; é como vc colocou mesmo. Estava corrigindo meu código enquanto vc respondeu do mesmo jeito que eu corrigi, foi mal em não ter olhado sua resposta antes. E a explicação de dar certo com “equals” e não com “==”, vc poderia me dizer?

ok! pessoal novamente obrigado a todos pela ajuda.

Oi,
Então vamos lá…
assim, para comparar String você não pode nunca compara-las com simbolos, sinal etc… ( ==, >, < )… e sim, somente equals!

e para comparar numeros no seu caso int, ai sim… nunca usar equals… sómente simbolos.

como sua variavel operador era uma String, deve-se comparar com o equals… pois equals no java é comparação de String x String. e não String x inteiro

Tchauzin!

Ok! Agora entendi. Vou memorizar [/b]lina[/b].

Agradeço a todos pela ajuda, obrigado.

Até uma outra postagem.


    
    
    import java.util.Scanner;   
  
class Td2 {   
       
    public static void main(String[] args){   
           
        Scanner input = new Scanner(System.in);   
           
        System.out.print("Digite o 1º operando: ");   
        int operando1 = input.nextInt();   
        System.out.print("Digite o operador: ");   
       //har operador = input.Char();   
        System.out.print("\nDigite o 2º operando: ");   
        int operando2 = input.nextInt();   
           String operador="+";
        int resultado = 0;   
        if(operador == "+"){   
            resultado = operando1 + operando2;   
        }   
        else if(operador == "-"){   
            resultado = operando1 - operando2;   
        }   
        else if(operador == "*"){   
            resultado = operando1 * operando2;   
        }   
        else if(operador == "/"){   
            resultado = operando1 / operando2;   
        }   
        System.out.println("resultado = "+operando1+""+operador+""+operando2);   
    }   
}  

bem porque nao fazer o operador ser String somente… ???

!!!??