Tipos incomparáveis: char e string?

3 respostas
E

Boa tarde
Seguinte, tenho uma dúvida que não consegui contornar de jeito nenhum...

To tentando fazer um programinha que pega um nome digitado e depois o exibe em forma de referência bibliográfica (ex: digito Emerson Cozzi Candido, e ele me mostra Candido, Emerson Cozzi).

O problema é que preciso "pegar" o primeiro espaço da direita pra esquerda, e tenho o seguinte erro:

incomparable types: char and java.lang.String
}while(n.charAt(i) [color="red"]!=[/color] " ");

Segue abaixo o código completo.

import javax.swing.JOptionPane;

public class Bibliografico {

	public static StringBuffer Ref_bbl(StringBuffer n) {
		StringBuffer sbn = new StringBuffer();
		StringBuffer aux = new StringBuffer();
		StringBuffer bbl = new StringBuffer();
		int i;

		i = n.length();
		do {
			i = i - 1;
		}while(n.charAt(i) != " ");

		for(i = i; i <= n.length(); i++) sbn.append(n.charAt(i));
		for(i = 1; i <= n.length() - sbn.length(); i++) aux.append(n.charAt(i));

		bbl.append(sbn);
		bbl.append(", ");
		bbl.append(aux);

		return bbl;
	}

	public static void main(String[] args) {
		String str_nome;
		StringBuffer nome = new StringBuffer();
		StringBuffer biblio = new StringBuffer();

		str_nome = JOptionPane.showInputDialog("Digite o nome completo:");
		nome.append(str_nome);

		biblio = Ref_bbl(nome);

		JOptionPane.showMessageDialog(null, "Referência bibliográfica: \n" + biblio , "Teste de StringBuffer" , JOptionPane.PLAIN_MESSAGE);

		System.exit(0);
	}
}

3 Respostas

S

Simples, basta usar ’ ’ ao invés de " ".

“a” é String a.
‘a’ é char a.

J

Tinha mais erro além do ' '.

Código funcionando:
import javax.swing.JOptionPane; 

public class Bibliografico { 

   public static StringBuffer Ref_bbl(StringBuffer n) { 
      StringBuffer sbn = new StringBuffer(); 
      StringBuffer aux = new StringBuffer(); 
      StringBuffer bbl = new StringBuffer(); 
      int i; 

      i = n.length(); 

      do { 
         i = i - 1; 
      }while(n.charAt(i) != ' '); 


      for(;++i < n.length();) sbn.append(n.charAt(i)); 

      for(i = 0; i < n.length() - sbn.length(); i++) aux.append(n.charAt(i)); 

      bbl.append(sbn); 
      bbl.append(", "); 
      bbl.append(aux); 

      return bbl; 
   } 

   public static void main(String[] args) { 
      String str_nome; 
      StringBuffer nome = new StringBuffer(); 
      StringBuffer biblio = new StringBuffer(); 

      str_nome = JOptionPane.showInputDialog("Digite o nome completo:"); 
      nome.append(str_nome); 

      biblio = Ref_bbl(nome); 

      JOptionPane.showMessageDialog(null, "Referência bibliográfica: \n" + biblio , "Teste de StringBuffer" , JOptionPane.PLAIN_MESSAGE); 

      System.exit(0); 
   } 
}
E

Valeu ae galera :grin:

Schuenemann, esse detalhe eu não conhecia, agora eu não esqueço mais

JavaDrops, esses erros que tinham sobrado foram falta de atenção, vo tomar mais cuidado com esses detalhes

Criado 20 de agosto de 2005
Ultima resposta 20 de ago. de 2005
Respostas 3
Participantes 3