Programa de Busca em Textos

7 respostas
R

O objetivo é desenvolver um programa que faça busca em textos.

Exemplo de execução:
Texto: O dia esta frio porque é noite e amanha o novo dia estara quante.
Palavra: Dia
Posições: 2 , 31

Alguem se habilita??? Já fazem 3 dias que estou tentando e nada até agora…

7 Respostas

R

Ahn, de preferência usa-se o LENGTH() e CHARAT() …

Métodos como INDEXOF() não podem ser usados :frowning:

paulorb.pacheco
public class Teste {
    
    /** Creates a new instance of Teste */
    public Teste() {
        String texto = "O gato morreu apos o gato branco morrer apos o gato preto morrer";
        String palavra = "gato";
        int indice = 48;
        if(acha(texto, palavra, indice)){
            System.out.println("Achou");
        }
        else{
            System.out.println("Não achou");
        }
    }
    
    private boolean acha(String texto, String palavra, int inicio){
        int indexPalavra = 0;
        String palavraTemp = "";
        if(inicio < texto.length()){
            for(int i = inicio; i < texto.length(); i++){
                if(indexPalavra < palavra.length()){
                    if(texto.charAt(i) == palavra.charAt(indexPalavra)){
                        palavraTemp = palavraTemp + texto.charAt(i);
                    }
                    indexPalavra++;
                }
                else{
                    i = texto.length();
                }
            }
        }
        if(palavra.equals(palavraTemp)){
            return true;
        }
        return false;
    }
    
    public static void main(String args[] ){
        new Teste();
    }
}

Notei que isso parece exercicio de uma faculdade ou mesmo de um cursinho, e estou ajudando pq vc disse que está a tres dias nisso…
É ideial que vc estude e não copie códigos da internet… ok???
:stuck_out_tongue:

Até parece professor falando…

Abs

Flw…

R

Kara como vc conseguiu?!?!?!?!?! :shock:

Mas eh um pouco diferente:
Eh o seguinte, o usuário é que tem que enviar o texto e a palavra, e assim, o programa localiza a posição.
O texto do ‘dia’ foi só um exemplo…

Mesmo assim, Valeu, brigadão!

R

} } if(palavra.equals(palavraTemp)){ return true; }

O comando equals serve para que???

Tem como substituílo por alguma outra coisa???

VLW!

J

Serve para comparar objetos, em Java uma variável do tipo String é um objeto.

AGORA…
Sugiro se vc estude alguns algoritmos de reconhecimento de padrões como:
Rabin_karp, KMP, Boyer-Moore, são algoritmos tradicionais aplicados.

Um boa referência é o Handbook of Exact String-Matching o qual anexo neste post a título de referência

R

jwcunha:

Serve para comparar objetos, em Java uma variável do tipo String é um objeto.

AGORA…
Sugiro se vc estude alguns algoritmos de reconhecimento de padrões como:
Rabin_karp, KMP, Boyer-Moore, são algoritmos tradicionais aplicados.

VLW mt bom o livro kara, vou ler com paciencia, o problema eh que eu não posso usar isso… Os dois métodos predefinidos que podem ser usados são LENGTH e CHARAT, só…

O Paulo acima fez certo, só que não deixou a opção para o texto ser carregado pelo usuário e usou o EQUALS (não posso usá-lo)…

:roll:

FMZ? msm assim valeu e se vc conseguir coloque aqui pra mim! vlw teh mais

cassio

Ao invés do equals, já que é só para comparar String, faça um método auxiliar que recebe duas Strings e retorne um boolean

mais ou menos assim:

public boolean areEqual(String s1, String s2) {
 if(s1.length() != s2.length) return false; //se o numero de caracteres for diferente, nem precisa ver o resto!
int tamanho = s1.length();
for(int i = 0; i &lt tamanho; i++)
   if(s1.charAt(i) != s2.charAt(i)) return false;
return true; 
}

Agora, para alterar o que o nosso amigo fez ali em cima para que o usário entre com as palavras, é bem simples. Dê uma estudada na classe Scanner e como usá-la para ler do teclado. É bem simples. Você também não vai querer tudo de mão beijada né? Estuda meu camarada!

Criado 17 de maio de 2007
Ultima resposta 18 de mai. de 2007
Respostas 7
Participantes 4