Converter int em char ou String

12 respostas
J

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:

/* 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);
	}
}

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

12 Respostas

T

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

gp7junior

Talvez você devesse procurar na api da classe Scanner.

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

valew

J

Vou tentar!

J
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:
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);
	}
}

O que vcs acham que pode estar errado ?

lina
Oi, Como eu nao tenho Scanner aqui.. fiz assim ó: (deve ser a mesma maneira)
// 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);
Deve ajudar... Tchauzin!
T

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

T

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”)

J
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:
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);
	}
}
[color=green]Obrigado a todos pelas dicas. [/color]
J

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.

lina

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!

J

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

Agradeço a todos pela ajuda, obrigado.

Até uma outra postagem.

R
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… ???

!!!??

Criado 20 de abril de 2007
Ultima resposta 4 de ago. de 2009
Respostas 12
Participantes 5