• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

inarus

Comparaçao

8 mensagens neste tópico

ola

sou novo no fórum e iniciei cava a pouco tempo.

neste momento o meu programa está a dar erro.

o programa consiste em que o utilizador introduza uma equação e faça uns cálculos.

li essa equação como string e dividi os vários caracteres para um array com "toCharArray()" mas  agora quero  percorrer o array e encontrar o sinal de mais ou de menos mas da-me erro.

eu fiz assim

 System.out.println("introduza um plano");
       String expressao = ler.next();
       char[] letras = expressao.toCharArray();
       for(i=0;i<expressao.length();i++){
      if(letras[i]=="+")

da um erro de imcomparable types, já experimentei com equals e o compareTo mas nada

toda ajuda é bem vinda!

peço desculpa se fiz algo de mal

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é "+". Algo entre aspas é uma string. Pata que seja considerado um char tens de usar plicas, ou seja, fazer assim:

letras[i] == '+'

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como o Ferreira te disse, um char é identificado por plicas e não por aspas. Mas se estivesses a usar Strings, então terias um bug algo escondido, uma String não pode ser comparada com o operador de igualdade, nenhum objecto pode e a String é um objecto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa la a minha ignorância, mas eu posso usar plicas numa string?

e numa variavel char pode-se usar equals e compareTO?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se percebi, queres uma string que contém uma plica? Tens de usar sequências de escape:

String plica = "Isto é uma plica: \'";

E char é um tipo primitivo, logo só podes usar operadores sobre ele, nunca métodos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

era so um pergunta!

eu estava a referir se numa string podia usar ' ' do tipo

String ola='ola';

mas não dá porque -->

E char é um tipo primitivo, logo só podes usar operadores sobre ele, nunca métodos.

já estou esclarecido! muito obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu estava a referir se numa string podia usar ' ' do tipo

String ola='ola';

Não dá porque o uso de aspas permite indicar ao compilador um atalho para a construção de uma String.

Assim, quando fazes

String s = "Olá";

é o mesmo que fazer

String s = new String("Olá");

Objectos do tipo String são sempre e apenas identificados por aspas, podes ter plicas dentro de uma String mas não podes delimitar uma String usando plicas nas operações normais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora