Comparação String

Boa tarde!!!

Galera será que alguêm pode me ajudar?

Estou com problema em um código Java que estou fazendo aqui no serviço que irá filtrar

nomes de aparelhos celulares através da compatibilidade.

Abaixo segue a descrição do que preciso:

  • Numa caixa de texto irá entrar nomes da seguinte forma: Nokia6670, Nokia6681, MotorolaV3

  • Na outra caixa de texto irá acontecer a mesma coisa: MotorolaV3, SamsungSGHX480, Nokia6132.

  • Todos eles são separados por vírgulas.

-> PRECISO DE: Um código que compare os aparelhos e me traga apenas os aparelhos que são iguais.

No exemplo acima eu receberia apenas o MotorolaV3.

Esse é o código que fiz até aqui:

public class filtro extends JFrame implements ActionListener
[color=darkred]{
static JPanel jp1,jp2,jp3;
static JLabel l1,l2,l3,l4;
static JTextField tf1,tf2;
static JButton b1;
private Container janela;
public filtro()
{
setTitle(“Filtro de Aparelhos”);
setSize(600,500);
setResizable(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});

  jp1 = new JPanel();
  jp1.setLayout(new GridLayout(6,1,10,10));
  
  jp2 = new JPanel();
  jp2.setLayout(new GridLayout(6,1,10,10));
  
  jp3 = new JPanel();
  jp3.setLayout(new FlowLayout());
  
  l1 = new JLabel("Aparelhos Parceiro: ");
  tf1 = new JTextField(10);
  l3 = new JLabel("O Resultado será gerado");
  l2 = new JLabel("Aparelhos Claro: ");
  tf2 = new JTextField(10);
  l4 = new JLabel(" Aqui!");
  b1 = new JButton("FILTRAR APARELHOS");
  b1.addActionListener(this);
  

  jp1.add(l1);  jp2.add(tf1);  jp3.add(b1);
  jp1.add(l2);  jp2.add(tf2);  
  jp1.add(l3);  jp2.add(l4);   
                       
   
   janela = getContentPane();
   janela.add(jp1,BorderLayout.WEST);
   janela.add(jp2,BorderLayout.CENTER);
   janela.add(jp3,BorderLayout.SOUTH);

}[/color]

bom, fico na aguardo galera =]

:shock: Vlwww, abraço a todos…

Isso é teoria dos conjuntos. Conhece a operação de intersecção?

a) Pegue a primeira string, converta-a em um conjunto.
b) Pegue a segunda string, converta-a em um conjunto.
c) Ache a intersecção entre os dois conjuntos. Exemplo:

import java.util.*;

class InsensitiveCaseComparator implements Comparator<String> {
    public int compare (String st1, String st2) {
        return st1.compareToIgnoreCase (st2);
    }
}

class Conjuntos {
    public static void main(String[] args) {
        String s1 = "Nokia6670, Nokia6681, MotorolaV3";
        String s2 = "MotorolaV3, SamsungSGHX480, Nokia6132";
        String[] a1 = s1.split ("[, ]+");
        String[] a2 = s2.split ("[, ]+");
        InsensitiveCaseComparator icc = new InsensitiveCaseComparator();
        Set<String> set1 = new TreeSet<String>(icc) ;
        Set<String> set2 = new TreeSet<String>(icc) ;
        set1.addAll (Arrays.asList (a1));
        set2.addAll (Arrays.asList (a2));
        // set1 irá conter agora a intersecção entre os conjuntos set1 e set2.
        set1.retainAll (set2);
        // Agora imprimindo o conjunto dos itens que estão nos dois conjuntos.
        // Imprime "[MotorolaV3]"
        System.out.println (set1);
    }
}

http://www.guj.com.br/posts/list/50115.java

Separe as palvras por virgulas e compareas com equals algo assim

String string1 = "MotorolaV3,MotorolaV600,MotorolaE398";
String string2 = = "MotorolaV3,MotorolaV300,MotorolaE368";
String iguais = "";
String[] aparelhos1 = string1.split(",");
String[] aparelhos2 = string2.split(",");
for(int i = 0;i< aparelhos1.lenght;i++){
for(int j = 0;j<aparelhos2.lenght;i++){
if(aparelhos1[i].equalsIgnoreCase(aparelhos2[j]){
iguais = iguais+","+aparelhos2[j];
}
}
}

Olha querendo te da um exemplo já te passei completo só falta você adaptar no seu projeto