Extrair termos e deletar partes de uma matriz dinâmica ( de uma ArrayList)

8 respostas
thiagoapo

Olá amigos,

Estou precisando de uma ajuda de vocês…
Estou precisando fazer um algoritmo em java que consiga fazer 2 coisas:

1- extrair palavras de uma frase, ou seja, extrair termos e jogá-los numa matriz dinâminca.
2- eliminar algumas palavras armazenadas nessa matriz dinâmica.

Eu começei a idéia assim:

List listadepalavras = new ArrayList();

int i = 0;

for (j=0; j < listadepalavras.length; j++) {

while (s.charAt(i) !=   || s.charAt(i) != ‘.’) {

palavra = palavra + s.charAt(i);

i ++;

}
i++

listadepalavras[j].add (palavra);

}

Dizem que tem como fazer com split, mas não sei como fazer ainda, e etc…

Como eu entendo pouco de java ainda, qualquer ajuda é muito bem vinda.

8 Respostas

walissongpi
Boa noite. Primeiro: utilise a tag
nos códigos que vc digitar.

exemplo:
 [code]String frase= "O gato comeu a linha do cachorro";
    String[] palavras = frase.split(" ");// a frase é dividida em 
    //palavras e atribuída em um vetor - vc pode passar esses valores para uma matriz
    List<String> lista =new ArrayList(Arrays.asList(palavras));
    
    for(String s:lista)
    System.out.println(s);

    lista.remove("cachorro");

    for(String s:lista)
    System.out.println(s);

Dúvidas?

thiagoapo

.

thiagoapo
walissongpi:
Boa noite. Primeiro: utilise a tag
nos códigos que vc digitar.

exemplo:
 [code]String frase= "O gato comeu a linha do cachorro";
    String[] palavras = frase.split(" ");// a frase é dividida em 
    //palavras e atribuída em um vetor - vc pode passar esses valores para uma matriz
    List<String> lista =new ArrayList(Arrays.asList(palavras));
    
    for(String s:lista)
    System.out.println(s);

    lista.remove("cachorro");

    for(String s:lista)
    System.out.println(s);

Dúvidas?

Cara valeu pela dica, no split é muito simples...

walissongpi

thiagoapo:
.
ahn!?!? :shock:
Java evangelist é como se fosse o meu status no GUJ. rsrsrs. Não tenho religião. :arrow:

thiagoapo
walissongpi:
thiagoapo:
.
ahn!?!? :shock: Java evangelist é como se fosse o meu status no GUJ. rsrsrs. Não tenho religião. :arrow:
Saquei...rs cara mais uma dúvida, eu to tentando comparar as palavras de uma matriz com outra usando split para ver se há alguma palavra igual entre elas... desse modo, por exemplo:
String x = "gato doido";
	     String[] palavras = x.split(" ");
	    
	            for (int i = 0; i < palavras.length; i++) {
	    		
	    		     if (palavras[i] == "gato")
	    		    	 System.out.println("funcionou");
	    		    	else
	    		    		System.out.println("não funcionou");
	    	 
	            }
	    	
	    	  
	     }
	    
	     
	     }

mas porque ao comparar palavras[i] que recebeu gato na posição [0] com "gato" e não escreve "funcionou" dentro do ? Ao rodar o código acima, ele não considera o que ta armazenado na palavras[i] como igual a "gato" nunca... (sendo que deveria ser igual já que ele recebeu gato)... Pq isso acontece? o que devo fazer para corrigir?

Abração

thiagoapo

bom cara depois de fuçar aqui consegui comparar 2 listas (ArrayList) com o equals. Tava batendo a cabeça pq com “==” não dva…

walissongpi
thiagoapo:
walissongpi:
thiagoapo:
.
ahn!?!? :shock: Java evangelist é como se fosse o meu status no GUJ. rsrsrs. Não tenho religião. :arrow:
Saquei...rs cara mais uma dúvida, eu to tentando comparar as palavras de uma matriz com outra usando split para ver se há alguma palavra igual entre elas... desse modo, por exemplo:
String x = "gato doido";
	     String[] palavras = x.split(" ");
	    
	            for (int i = 0; i < palavras.length; i++) {
	    		
	    		     if (palavras[i] == "gato")
	    		    	 System.out.println("funcionou");
	    		    	else
	    		    		System.out.println("não funcionou");
	            }	  
	     }  
	     }

mas porque ao comparar palavras[i] que recebeu gato na posição [0] com "gato" e não escreve "funcionou" dentro do ? Ao rodar o código acima, ele não considera o que ta armazenado na palavras[i] como igual a "gato" nunca... (sendo que deveria ser igual já que ele recebeu gato)... Pq isso acontece? o que devo fazer para corrigir?

Abração

Não se pode comparar objetos com "==", somente tipos primitivos. Em objetos, o operador "==" verifica se a variável1 está "apontando" ao mesmo objeto da variavel2.

veja:

String s1="oi";
String s2=s1;

System.out.println(s1==s2); //retorna verdadeiro pq a s1 e s2 
//apontam para o mesmo objeto. Nesse caso o objeto "oi".

o seu código funcionará assim:

String x = "gato doido";
String[] palavras = x.split(" ");

             for (int i = 0; i < palavras.length; i++) {
                  if (palavras[i].equals("gato"))
                      System.out.println("funcionou");
                     else
                         System.out.println("não funcionou");

             }
thiagoapo
walissongpi:
thiagoapo:
walissongpi:
thiagoapo:
.
ahn!?!? :shock: Java evangelist é como se fosse o meu status no GUJ. rsrsrs. Não tenho religião. :arrow:
Saquei...rs cara mais uma dúvida, eu to tentando comparar as palavras de uma matriz com outra usando split para ver se há alguma palavra igual entre elas... desse modo, por exemplo:
String x = "gato doido";
	     String[] palavras = x.split(" ");
	    
	            for (int i = 0; i < palavras.length; i++) {
	    		
	    		     if (palavras[i] == "gato")
	    		    	 System.out.println("funcionou");
	    		    	else
	    		    		System.out.println("não funcionou");
	            }	  
	     }  
	     }

mas porque ao comparar palavras[i] que recebeu gato na posição [0] com "gato" e não escreve "funcionou" dentro do ? Ao rodar o código acima, ele não considera o que ta armazenado na palavras[i] como igual a "gato" nunca... (sendo que deveria ser igual já que ele recebeu gato)... Pq isso acontece? o que devo fazer para corrigir?

Abração

Não se pode comparar objetos com "==", somente tipos primitivos. Em objetos, o operador "==" verifica se a variável1 está "apontando" ao mesmo objeto da variavel2.

veja:

String s1="oi";
String s2=s1;

System.out.println(s1==s2); //retorna verdadeiro pq a s1 e s2 
//apontam para o mesmo objeto. Nesse caso o objeto "oi".

o seu código funcionará assim:

String x = "gato doido";
String[] palavras = x.split(" ");

             for (int i = 0; i < palavras.length; i++) {
                  if (palavras[i].equals("gato"))
                      System.out.println("funcionou");
                     else
                         System.out.println("não funcionou");

             }

Entendi cara valeu a dica! Sucesso pra vc!

Criado 20 de maio de 2010
Ultima resposta 22 de mai. de 2010
Respostas 8
Participantes 2